@interopio/desktop 6.8.0 → 6.8.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"desktop.umd.min.js","sources":["../../core/dist/core.es.js","../src/activity/entities/activityEntity.ts","../src/activity/helpers/util.ts","../src/activity/entities/activityType.ts","../src/activity/entities/windowType.ts","../src/activity/contracts/entityEvent.ts","../src/activity/core/activityAGM.ts","../src/activity/entities/attachedActivityDescriptor.ts","../src/activity/helpers/promiseExtensions.ts","../src/activity/entities/activity.ts","../src/activity/helpers/logger.ts","../src/activity/entities/activityWindow.ts","../src/activity/contracts/activityStatus.ts","../src/activity/bridges/gw3Bridge.ts","../src/activity/API/activityMyAPI.ts","../src/activity/helpers/readyMarker.ts","../src/activity/helpers/entityObservableCollection.ts","../src/activity/core/activityManager.ts","../src/activity/API/activityManagementAPI.ts","../src/activity/API/activityAPI.ts","../src/activity/activityModule.ts","../src/app-manager/const/agm-names.ts","../../../node_modules/callback-registry/lib/index.js","../src/app-manager/helper.ts","../src/app-manager/application.ts","../src/app-manager/instance.ts","../src/app-manager/app-manager.ts","../src/app-manager/entitlements.ts","../src/app-manager/in-memory.ts","../src/app-manager/main.ts","../src/app-manager/snapshot.ts","../src/app-manager/data-subscription.ts","../src/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../src/windows/jumpList/manager.ts","../src/windows/store.ts","../src/windows/jumpList/actions.ts","../src/windows/jumpList/categories.ts","../src/windows/jumpList/main.ts","../src/windows/window.ts","../src/windows/environment/helpers.ts","../src/windows/environment/gd/executor.ts","../src/windows/environment/gd/gd.ts","../src/windows/environment/detector.ts","../src/windows/group.ts","../src/windows/groups.ts","../src/windows/main.ts","../src/layouts/store.ts","../src/layouts/contextProvider.ts","../src/layouts/transform.ts","../src/layouts/layout.ts","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/layouts/main.ts","../src/displays/displayManager.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/channels.ts","../src/channels/main.ts","../src/hotkeys/hotkeys.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../src/intents/constants.ts","../src/intents/common.ts","../src/intents/helpers.ts","../src/intents/intents.ts","../src/prefs/index.ts","../src/cookies/index.ts","../src/eventsDispatcher.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\n STRING: 1,\n NUMBER: 2,\n TIMESTAMP: 3,\n OBJECT: 4\n};\n\nfunction getMetricTypeByValue(metric) {\n if (metric.type === MetricTypes.TIMESTAMP) {\n return \"timestamp\";\n }\n else if (metric.type === MetricTypes.NUMBER) {\n return \"number\";\n }\n else if (metric.type === MetricTypes.STRING) {\n return \"string\";\n }\n else if (metric.type === MetricTypes.OBJECT) {\n return \"object\";\n }\n return \"unknown\";\n}\nfunction getTypeByValue(value) {\n if (value.constructor === Date) {\n return \"timestamp\";\n }\n else if (typeof value === \"number\") {\n return \"number\";\n }\n else if (typeof value === \"string\") {\n return \"string\";\n }\n else if (typeof value === \"object\") {\n return \"object\";\n }\n else {\n return \"string\";\n }\n}\nfunction serializeMetric(metric) {\n const serializedMetrics = {};\n const type = getMetricTypeByValue(metric);\n if (type === \"object\") {\n const values = Object.keys(metric.value).reduce((memo, key) => {\n const innerType = getTypeByValue(metric.value[key]);\n if (innerType === \"object\") {\n const composite = defineNestedComposite(metric.value[key]);\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite,\n };\n }\n else {\n memo[key] = {\n type: innerType,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n serializedMetrics.composite = values;\n }\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\n serializedMetrics.type = type;\n serializedMetrics.description = metric.description;\n serializedMetrics.context = {};\n return serializedMetrics;\n}\nfunction defineNestedComposite(values) {\n return Object.keys(values).reduce((memo, key) => {\n const type = getTypeByValue(values[key]);\n if (type === \"object\") {\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite: defineNestedComposite(values[key]),\n };\n }\n else {\n memo[key] = {\n type,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n}\nfunction normalizeMetricName(name) {\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\n return \"/\" + name;\n }\n else {\n return name;\n }\n}\nfunction getMetricValueByType(metric) {\n const type = getMetricTypeByValue(metric);\n if (type === \"timestamp\") {\n return Date.now();\n }\n else {\n return publishNestedComposite(metric.value);\n }\n}\nfunction publishNestedComposite(values) {\n if (typeof values !== \"object\") {\n return values;\n }\n return Object.keys(values).reduce((memo, key) => {\n const value = values[key];\n if (typeof value === \"object\" && value.constructor !== Date) {\n memo[key] = publishNestedComposite(value);\n }\n else if (value.constructor === Date) {\n memo[key] = new Date(value).getTime();\n }\n else if (value.constructor === Boolean) {\n memo[key] = value.toString();\n }\n else {\n memo[key] = value;\n }\n return memo;\n }, {});\n}\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\n }, []);\n}\nfunction getHighestState(arr) {\n return arr.sort((a, b) => {\n if (!a.state) {\n return 1;\n }\n if (!b.state) {\n return -1;\n }\n return b.state - a.state;\n })[0];\n}\nfunction aggregateDescription(arr) {\n let msg = \"\";\n arr.forEach((m, idx, a) => {\n const path = m.path.join(\".\");\n if (idx === a.length - 1) {\n msg += path + \".\" + m.name + \": \" + m.description;\n }\n else {\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\n }\n });\n if (msg.length > 100) {\n return msg.slice(0, 100) + \"...\";\n }\n else {\n return msg;\n }\n}\nfunction composeMsgForRootStateMetric(system) {\n const aggregatedState = system.root.getAggregateState();\n const merged = flatten(aggregatedState);\n const highestState = getHighestState(merged);\n const aggregateDesc = aggregateDescription(merged);\n return {\n description: aggregateDesc,\n value: highestState.state,\n };\n}\n\nfunction gw3 (connection, config) {\n if (!connection || typeof connection !== \"object\") {\n throw new Error(\"Connection is required parameter\");\n }\n let joinPromise;\n let session;\n const init = (repo) => {\n let resolveReadyPromise;\n joinPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n session = connection.domain(\"metrics\");\n session.onJoined((reconnect) => {\n if (!reconnect && resolveReadyPromise) {\n resolveReadyPromise();\n resolveReadyPromise = undefined;\n }\n const rootStateMetric = {\n name: \"/State\",\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const defineRootMetricsMsg = {\n type: \"define\",\n metrics: [rootStateMetric],\n };\n session.send(defineRootMetricsMsg);\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.send(createMetricsMsg);\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(shadowedUpdateMetric);\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(rootMetric);\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.send(createMetricsMsg);\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg);\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n this.ws.onerror = (err) => {\n let reason = \"\";\n try {\n reason = JSON.stringify(err);\n }\n catch (error) {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _communicationId;\n publicWindowId;\n selfAssignedWindowId;\n iAmConnected = false;\n parentReady = false;\n rejected = false;\n parentPingResolve;\n parentPingInterval;\n connectionResolve;\n extConnectionResolve;\n extConnectionReject;\n connectionReject;\n port;\n myClientId;\n children = [];\n extContentAvailable = false;\n extContentConnecting = false;\n extContentConnected = false;\n parentWindowId;\n parentInExtMode = false;\n webNamespace = \"g42_core_web\";\n parent;\n parentType;\n parentPingTimeout = 5000;\n connectionRequestTimeout = 7000;\n defaultTargetString = \"*\";\n registry = CallbackRegistryFactory();\n messages = {\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\n parentReady: {\n name: \"parentReady\", handle: () => {\n }\n },\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\n clientUnload: { name: \"clientUnload\", handle: this.handleClientUnload.bind(this) },\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\n };\n constructor(settings, logger, identity) {\n this.settings = settings;\n this.logger = logger;\n this.identity = identity;\n this.extContentAvailable = !!window.glue42ext;\n this.setUpMessageListener();\n this.setUpUnload();\n this.setupPlatformUnloadListener();\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\n }\n manualSetReadyState() {\n this.iAmConnected = true;\n this.parentReady = true;\n }\n get transportWindowId() {\n return this.publicWindowId;\n }\n get communicationId() {\n return this._communicationId;\n }\n async sendObject(msg) {\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: msg }, this.defaultTargetString);\n }\n if (!this.port) {\n throw new Error(\"Cannot send message, because the port was not opened yet\");\n }\n this.port.postMessage(msg);\n }\n get isObjectBasedTransport() {\n return true;\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n send() {\n return Promise.reject(\"not supported\");\n }\n onConnectedChanged(callback) {\n return this.registry.add(\"onConnectedChanged\", callback);\n }\n async open() {\n this.logger.debug(\"opening a connection to the web platform gateway.\");\n await this.connect();\n this.notifyStatusChanged(true);\n }\n close() {\n const message = {\n glue42core: {\n type: this.messages.gatewayDisconnect.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.port?.postMessage(message);\n this.parentReady = false;\n this.notifyStatusChanged(false, \"manual reconnection\");\n return Promise.resolve();\n }\n name() {\n return \"web-platform\";\n }\n async reconnect() {\n await this.close();\n return Promise.resolve();\n }\n initiateInternalConnection() {\n return new Promise((resolve, reject) => {\n this.logger.debug(\"opening an internal web platform connection\");\n this.port = this.settings.port;\n if (this.iAmConnected) {\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\n return;\n }\n this.port.onmessage = (event) => {\n if (this.iAmConnected && !event.data?.glue42core) {\n this.registry.execute(\"onMessage\", event.data);\n return;\n }\n const data = event.data?.glue42core;\n if (!data) {\n return;\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\n this.publicWindowId = this.settings.windowId;\n if (this.identity && this.publicWindowId) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.publicWindowId;\n }\n resolve();\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\n reject(data.error);\n }\n };\n this.port.postMessage({\n glue42core: {\n type: this.messages.gatewayInternalConnect.name\n }\n });\n });\n }\n initiateRemoteConnection(target) {\n return PromisePlus((resolve, reject) => {\n this.connectionResolve = resolve;\n this.connectionReject = reject;\n this.myClientId = this.myClientId ?? nanoid(10);\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\n const request = {\n glue42core: {\n type: this.messages.connectionRequest.name,\n clientId: this.myClientId,\n clientType: \"child\",\n bridgeInstanceId,\n selfAssignedWindowId: this.selfAssignedWindowId\n }\n };\n this.logger.debug(\"sending connection request\");\n if (this.extContentConnecting) {\n request.glue42core.clientType = \"child\";\n request.glue42core.bridgeInstanceId = this.myClientId;\n request.glue42core.parentWindowId = this.parentWindowId;\n return window.postMessage(request, this.defaultTargetString);\n }\n if (!target) {\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\n }\n target.postMessage(request, this.defaultTargetString);\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\n }\n async isParentCheckSuccess(parentCheck) {\n try {\n await parentCheck;\n return { success: true };\n }\n catch (error) {\n return { success: false };\n }\n }\n setUpMessageListener() {\n if (this.settings.port) {\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"message\", (event) => {\n const data = event.data?.glue42core;\n if (!data || this.rejected) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n if (!this.checkMessageTypeValid(data.type)) {\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\n return;\n }\n const messageType = data.type;\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\n this.messages[messageType].handle(event);\n });\n }\n setUpUnload() {\n if (this.settings.port) {\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"beforeunload\", () => {\n if (this.extContentConnected) {\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.parent) {\n this.parent.postMessage(message, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n });\n }\n handlePlatformReady(event) {\n this.logger.debug(\"the web platform gave the ready signal\");\n this.parentReady = true;\n if (this.parentPingResolve) {\n this.parentPingResolve();\n delete this.parentPingResolve;\n }\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n this.parent = event.source;\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\n }\n handleConnectionAccepted(event) {\n const data = event.data?.glue42core;\n if (this.myClientId === data.clientId) {\n return this.handleAcceptanceOfMyRequest(data);\n }\n return this.handleAcceptanceOfGrandChildRequest(data, event);\n }\n handleAcceptanceOfMyRequest(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\n this.isPreferredActivated = data.isPreferredActivated;\n if (this.extContentConnecting) {\n return this.processExtContentConnection(data);\n }\n if (!data.port) {\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\n return;\n }\n this.publicWindowId = this.getMyWindowId();\n if (this.identity) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n this._communicationId = data.communicationId;\n this.port = data.port;\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\n }\n processExtContentConnection(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\n this.extContentConnecting = false;\n this.extContentConnected = true;\n this.publicWindowId = this.parentWindowId || this.myClientId;\n if (this.extContentConnecting && this.identity) {\n this.identity.windowId = this.publicWindowId;\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n window.addEventListener(\"message\", (event) => {\n const extData = event.data?.glue42ExtInc;\n if (!extData) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n this.registry.execute(\"onMessage\", extData);\n });\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n }\n handleAcceptanceOfGrandChildRequest(data, event) {\n if (this.extContentConnecting || this.extContentConnected) {\n this.logger.debug(\"cannot process acceptance of a grandchild, because I am connected to a content script\");\n return;\n }\n this.logger.debug(`handling a connection accepted signal targeted at a grandchild: ${data.clientId}`);\n const child = this.children.find((c) => c.grandChildId === data.clientId);\n if (!child) {\n this.logger.error(`cannot handle connection accepted for grandchild: ${data.clientId}, because there is no grandchild with this id`);\n return;\n }\n child.connected = true;\n this.logger.debug(`the grandchild connection for ${data.clientId} is set up, forwarding the success message and the gateway port`);\n data.parentWindowId = this.publicWindowId;\n child.source.postMessage(event.data, child.origin, [data.port]);\n return;\n }\n handleConnectionRejected() {\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\n if (this.connectionReject) {\n this.connectionReject(\"The platform connection was rejected. Most likely because this window was not created by a glue API call\");\n delete this.connectionReject;\n }\n }\n handleConnectionRequest(event) {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n const source = event.source;\n const data = event.data.glue42core;\n if (!data.clientType || data.clientType !== \"grandChild\") {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source was not opened by a glue API call\");\n }\n if (!data.clientId) {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source did not provide a valid id\");\n }\n if (!this.parent) {\n return this.rejectConnectionRequest(source, event.origin, \"Cannot forward the connection request, because no direct connection to the platform was found\");\n }\n this.logger.debug(`handling a connection request for a grandchild: ${data.clientId}`);\n this.children.push({ grandChildId: data.clientId, source, connected: false, origin: event.origin });\n this.logger.debug(`grandchild: ${data.clientId} is prepared, forwarding connection request to the platform`);\n this.parent.postMessage(event.data, this.defaultTargetString);\n }\n handleParentPing(event) {\n if (!this.parentReady) {\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\n return;\n }\n if (!this.iAmConnected) {\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.parentReady.name\n }\n };\n if (this.extContentConnected) {\n message.glue42core.extMode = { windowId: this.myClientId };\n }\n const source = event.source;\n this.logger.debug(\"responding to a parent ping with a ready message\");\n source.postMessage(message, event.origin);\n }\n setupPlatformUnloadListener() {\n this.onMessage((msg) => {\n if (msg.type === \"platformUnload\") {\n this.logger.debug(\"detected a web platform unload\");\n this.parentReady = false;\n this.notifyStatusChanged(false, \"Gateway unloaded\");\n }\n });\n }\n handleManualUnload() {\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: message }, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n }\n handleClientUnload(event) {\n const data = event.data.glue42core;\n const clientId = data?.data.clientId;\n if (!clientId) {\n this.logger.warn(\"cannot process grand child unload, because the provided id was not valid\");\n return;\n }\n const foundChild = this.children.find((child) => child.grandChildId === clientId);\n if (!foundChild) {\n this.logger.warn(\"cannot process grand child unload, because this client is unaware of this grandchild\");\n return;\n }\n this.logger.debug(`handling grandchild unload for id: ${clientId}`);\n this.children = this.children.filter((child) => child.grandChildId !== clientId);\n }\n handlePlatformPing() {\n return;\n }\n notifyStatusChanged(status, reason) {\n this.iAmConnected = status;\n this.registry.execute(\"onConnectedChanged\", status, reason);\n }\n checkMessageTypeValid(typeToValidate) {\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\n }\n rejectConnectionRequest(source, origin, reason) {\n this.rejected = true;\n this.logger.error(reason);\n const rejection = {\n glue42core: {\n type: this.messages.connectionRejected.name\n }\n };\n source.postMessage(rejection, origin);\n }\n requestConnectionPermissionFromExt() {\n return this.waitForContentScript()\n .then(() => PromisePlus((resolve, reject) => {\n this.extConnectionResolve = resolve;\n this.extConnectionReject = reject;\n const message = {\n glue42core: {\n type: \"extSetupRequest\"\n }\n };\n this.logger.debug(\"permission request to the extension content script was sent\");\n window.postMessage(message, this.defaultTargetString);\n }, this.parentPingTimeout, \"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection timed out\"));\n }\n handleExtConnectionResponse(event) {\n const data = event.data?.glue42core;\n if (!data.approved) {\n return this.extConnectionReject ? this.extConnectionReject(\"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection was rejected\") : undefined;\n }\n if (this.extConnectionResolve) {\n this.extConnectionResolve();\n delete this.extConnectionResolve;\n }\n this.extContentConnecting = true;\n this.parentType = \"extension\";\n this.logger.debug(\"The extension connection was approved, proceeding.\");\n }\n handleExtSetupRequest() {\n return;\n }\n handleGatewayDisconnect() {\n return;\n }\n handleGatewayInternalConnect() {\n return;\n }\n waitForContentScript() {\n const contentReady = !!window.glue42ext?.content;\n if (contentReady) {\n return Promise.resolve();\n }\n return PromisePlus((resolve) => {\n window.addEventListener(\"Glue42EXTReady\", () => {\n resolve();\n });\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\n }\n async connect() {\n if (this.settings.port) {\n await this.initiateInternalConnection();\n this.logger.debug(\"internal web platform connection completed\");\n return;\n }\n this.logger.debug(\"opening a client web platform connection\");\n await this.findParent();\n await this.initiateRemoteConnection(this.parent);\n this.logger.debug(\"the client is connected\");\n }\n async findParent() {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const myInsideParents = this.getPossibleParentsInWindow(window);\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\n if (!uniqueParents.size && !this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n if (!uniqueParents.size && this.extContentAvailable) {\n await this.requestConnectionPermissionFromExt();\n return;\n }\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\n if (defaultParentCheck.success) {\n this.logger.debug(\"The default parent was found!\");\n return;\n }\n if (!this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n await this.requestConnectionPermissionFromExt();\n }\n getPossibleParentsInWindow(currentWindow) {\n return (!currentWindow || currentWindow === currentWindow.top) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\n }\n getPossibleParentsOutsideWindow(opener, current) {\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\n }\n confirmParent(targets) {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const parentCheck = PromisePlus((resolve) => {\n this.parentPingResolve = resolve;\n const message = {\n glue42core: {\n type: this.messages.platformPing.name\n }\n };\n this.parentPingInterval = setInterval(() => {\n targets.forEach((target) => {\n target.postMessage(message, this.defaultTargetString);\n });\n }, 1000);\n }, this.parentPingTimeout, connectionNotPossibleMsg);\n parentCheck.catch(() => {\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n });\n return parentCheck;\n }\n getMyWindowId() {\n if (this.parentType === \"workspace\") {\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\n }\n if (window !== window.top) {\n return;\n }\n if (window.name?.includes(\"g42\")) {\n return window.name;\n }\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\n return this.selfAssignedWindowId;\n }\n}\n\nconst waitForInvocations = (invocations, callback) => {\n let left = invocations;\n return () => {\n left--;\n if (left === 0) {\n callback();\n }\n };\n};\n\nclass AsyncSequelizer {\n minSequenceInterval;\n queue = [];\n isExecutingQueue = false;\n constructor(minSequenceInterval = 0) {\n this.minSequenceInterval = minSequenceInterval;\n }\n enqueue(action) {\n return new Promise((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n async executeQueue() {\n if (this.isExecutingQueue) {\n return;\n }\n this.isExecutingQueue = true;\n while (this.queue.length) {\n const operation = this.queue.shift();\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n }\n catch (error) {\n operation.reject(error);\n }\n await this.intervalBreak();\n }\n this.isExecutingQueue = false;\n }\n intervalBreak() {\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\n }\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\n if (domain == null) {\n domain = \"global\";\n }\n successMessages = successMessages ?? [\"success\"];\n errorMessages = errorMessages ?? [\"error\"];\n let isJoined = domain === \"global\";\n let tryReconnecting = false;\n let _latestOptions;\n let _connectionOn = false;\n const callbacks = CallbackRegistryFactory();\n connection.disconnected(handleConnectionDisconnected);\n connection.loggedIn(handleConnectionLoggedIn);\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\n if (successMessages) {\n successMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleSuccessMessage(msg));\n });\n }\n if (errorMessages) {\n errorMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleErrorMessage(msg));\n });\n }\n const requestsMap = {};\n function join(options) {\n _latestOptions = options;\n return new Promise((resolve, reject) => {\n if (isJoined) {\n resolve({});\n return;\n }\n let joinPromise;\n if (domain === \"global\") {\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\n }\n else {\n logger.debug(`joining domain ${domain}`);\n const joinMsg = {\n type: \"join\",\n destination: domain,\n domain: \"global\",\n options,\n };\n joinPromise = send(joinMsg);\n }\n joinPromise\n .then(() => {\n handleJoined();\n resolve({});\n })\n .catch((err) => {\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\n reject(err);\n });\n });\n }\n function leave() {\n if (domain === \"global\") {\n return Promise.resolve();\n }\n logger.debug(\"stopping session \" + domain + \"...\");\n const leaveMsg = {\n type: \"leave\",\n destination: domain,\n domain: \"global\",\n };\n tryReconnecting = false;\n return send(leaveMsg)\n .then(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n })\n .catch(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n });\n }\n function handleJoined() {\n logger.debug(\"did join \" + domain);\n isJoined = true;\n const wasReconnect = tryReconnecting;\n tryReconnecting = false;\n callbacks.execute(\"onJoined\", wasReconnect);\n }\n function handleConnectionDisconnected() {\n _connectionOn = false;\n logger.debug(\"connection is down\");\n isJoined = false;\n tryReconnecting = true;\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n join(_latestOptions);\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n logger.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\n delete requestsMap[requestId];\n errorMsg._tag = tag;\n reject(errorMsg);\n },\n };\n connection\n .send(msg, options)\n .catch((err) => {\n requestsMap[requestId].error({ err });\n });\n });\n }\n function sendFireAndForget(msg) {\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\n msg.domain = msg.domain ?? domain;\n msg.peer_id = connection.peerId;\n return connection.send(msg);\n }\n return {\n join,\n leave,\n onJoined,\n onLeft,\n send,\n sendFireAndForget,\n on: (type, callback) => {\n connection.on(type, (msg) => {\n if (msg.domain !== domain) {\n return;\n }\n try {\n callback(msg);\n }\n catch (e) {\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\n }\n });\n },\n loggedIn: (callback) => connection.loggedIn(callback),\n connected: (callback) => connection.connected(callback),\n disconnected: (callback) => connection.disconnected(callback),\n get peerId() {\n return connection.peerId;\n },\n get domain() {\n return domain;\n },\n };\n}\n\nclass Connection {\n settings;\n logger;\n protocolVersion = 3;\n peerId;\n token;\n info;\n resolvedIdentity;\n availableDomains;\n gatewayToken;\n replayer;\n messageHandlers = {};\n ids = 1;\n registry = CallbackRegistryFactory();\n _connected = false;\n isTrace = false;\n transport;\n _defaultTransport;\n _defaultAuth;\n _targetTransport;\n _targetAuth;\n _swapTransport = false;\n _switchInProgress = false;\n _transportSubscriptions = [];\n datePrefix = \"#T42_DATE#\";\n datePrefixLen = this.datePrefix.length;\n dateMinLen = this.datePrefixLen + 1;\n datePrefixFirstChar = this.datePrefix[0];\n _sequelizer = new AsyncSequelizer();\n _isLoggedIn = false;\n shouldTryLogin = true;\n pingTimer;\n sessions = [];\n globalDomain;\n initialLogin = true;\n initialLoginAttempts = 3;\n loginConfig;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n this.logger.trace(`Starting login for transport: ${this.transport.name()} and auth ${JSON.stringify(authRequest)}`);\n try {\n await this.transport.open();\n this.logger.trace(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.trace(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.trace(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n return;\n }\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.handleDisconnected();\n this.registry.execute(\"disconnected\");\n }\n }\n handleDisconnected() {\n this.setLoggedIn(false);\n const tryToLogin = this.shouldTryLogin;\n if (tryToLogin && this.initialLogin) {\n if (this.initialLoginAttempts <= 0) {\n return;\n }\n this.initialLoginAttempts--;\n }\n this.logger.debug(\"disconnected - will try new login?\" + this.shouldTryLogin);\n if (this.shouldTryLogin) {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n this.login(this.loginConfig, true)\n .catch(() => {\n setTimeout(this.handleDisconnected.bind(this), this.settings.reconnectInterval || 1000);\n });\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.logger.info(\"logging in...\");\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.initialLogin = false;\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\");\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(3)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n interop.invoke(Logger.InteropMethodName, {\n msg: `${message}`,\n logger: loggerName,\n level\n });\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n this.logFn.error(toPrint, error);\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.4.1\";\n\nfunction prepareConfig (configuration, ext, glue42gd) {\n let nodeStartingContext;\n if (Utils.isNode()) {\n const startingContextString = process.env._GD_STARTING_CONTEXT_;\n if (startingContextString) {\n try {\n nodeStartingContext = JSON.parse(startingContextString);\n }\n catch {\n }\n }\n }\n function getConnection() {\n const gwConfig = configuration.gateway;\n const protocolVersion = gwConfig?.protocolVersion ?? 3;\n const reconnectInterval = gwConfig?.reconnectInterval;\n const reconnectAttempts = gwConfig?.reconnectAttempts;\n const defaultWs = \"ws://localhost:8385\";\n let ws = gwConfig?.ws;\n const sharedWorker = gwConfig?.sharedWorker;\n const inproc = gwConfig?.inproc;\n const webPlatform = gwConfig?.webPlatform ?? undefined;\n if (glue42gd) {\n ws = glue42gd.gwURL;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwURL) {\n ws = nodeStartingContext.gwURL;\n }\n if (!ws && !sharedWorker && !inproc) {\n ws = defaultWs;\n }\n let instanceId;\n let windowId;\n let pid;\n let environment;\n let region;\n const appName = getApplication();\n let uniqueAppName = appName;\n if (typeof glue42gd !== \"undefined\") {\n windowId = glue42gd.windowId;\n pid = glue42gd.pid;\n if (glue42gd.env) {\n environment = glue42gd.env.env;\n region = glue42gd.env.region;\n }\n uniqueAppName = glue42gd.application ?? \"glue-app\";\n instanceId = glue42gd.appInstanceId;\n }\n else if (Utils.isNode()) {\n pid = process.pid;\n if (nodeStartingContext) {\n environment = nodeStartingContext.env;\n region = nodeStartingContext.region;\n instanceId = nodeStartingContext.instanceId;\n }\n }\n else if (typeof window?.glue42electron !== \"undefined\") {\n windowId = window?.glue42electron.instanceId;\n pid = window?.glue42electron.pid;\n environment = window?.glue42electron.env;\n region = window?.glue42electron.region;\n uniqueAppName = window?.glue42electron.application ?? \"glue-app\";\n instanceId = window?.glue42electron.instanceId;\n }\n else ;\n const replaySpecs = configuration.gateway?.replaySpecs ?? [];\n replaySpecs.push(ContextMessageReplaySpec);\n let identity = {\n application: uniqueAppName,\n applicationName: appName,\n windowId,\n instance: instanceId,\n process: pid,\n region,\n environment,\n api: ext.version || version\n };\n if (configuration.identity) {\n identity = Object.assign(identity, configuration.identity);\n }\n return {\n identity,\n reconnectInterval,\n ws,\n sharedWorker,\n webPlatform,\n inproc,\n protocolVersion,\n reconnectAttempts,\n replaySpecs,\n };\n }\n function getContexts() {\n if (typeof configuration.contexts === \"undefined\") {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"object\") {\n return Object.assign({}, { reAnnounceKnownContexts: true }, configuration.contexts);\n }\n return false;\n }\n function getApplication() {\n if (configuration.application) {\n return configuration.application;\n }\n if (glue42gd) {\n return glue42gd.applicationName;\n }\n if (typeof window !== \"undefined\" && typeof window.glue42electron !== \"undefined\") {\n return window.glue42electron.application;\n }\n const uid = nanoid(10);\n if (Utils.isNode()) {\n if (nodeStartingContext) {\n return nodeStartingContext.applicationConfig.name;\n }\n return \"NodeJS\" + uid;\n }\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n return document.title + ` (${uid})`;\n }\n return uid;\n }\n function getAuth() {\n if (typeof configuration.auth === \"string\") {\n return {\n token: configuration.auth\n };\n }\n if (configuration.auth) {\n return configuration.auth;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwToken) {\n return {\n gatewayToken: nodeStartingContext.gwToken\n };\n }\n if (configuration.gateway?.webPlatform || configuration.gateway?.inproc || configuration.gateway?.sharedWorker) {\n return {\n username: \"glue42\", password: \"glue42\"\n };\n }\n }\n function getLogger() {\n let config = configuration.logger;\n const defaultLevel = \"warn\";\n if (!config) {\n config = defaultLevel;\n }\n let gdConsoleLevel;\n if (glue42gd) {\n gdConsoleLevel = glue42gd.consoleLogLevel;\n }\n if (typeof config === \"string\") {\n return { console: gdConsoleLevel ?? config, publish: defaultLevel };\n }\n return {\n console: gdConsoleLevel ?? config.console ?? defaultLevel,\n publish: config.publish ?? defaultLevel\n };\n }\n const connection = getConnection();\n let application = getApplication();\n if (typeof window !== \"undefined\") {\n const windowAsAny = window;\n const containerApplication = windowAsAny.htmlContainer ?\n `${windowAsAny.htmlContainer.containerName}.${windowAsAny.htmlContainer.application}` :\n windowAsAny?.glue42gd?.application;\n if (containerApplication) {\n application = containerApplication;\n }\n }\n return {\n bus: configuration.bus ?? false,\n application,\n auth: getAuth(),\n logger: getLogger(),\n connection,\n metrics: configuration.metrics ?? true,\n contexts: getContexts(),\n version: ext.version || version,\n libs: ext.libs ?? [],\n customLogger: configuration.customLogger\n };\n}\n\nclass GW3ContextData {\n name;\n contextId;\n context;\n isAnnounced;\n joinedActivity;\n updateCallbacks = {};\n activityId;\n sentExplicitSubscription;\n hasReceivedSnapshot;\n constructor(contextId, name, isAnnounced, activityId) {\n this.contextId = contextId;\n this.name = name;\n this.isAnnounced = isAnnounced;\n this.activityId = activityId;\n this.context = {};\n }\n hasCallbacks() {\n return Object.keys(this.updateCallbacks).length > 0;\n }\n getState() {\n if (this.isAnnounced && this.hasCallbacks()) {\n return 3;\n }\n if (this.isAnnounced) {\n return 2;\n }\n if (this.hasCallbacks()) {\n return 1;\n }\n return 0;\n }\n}\n\nvar lodash_clonedeep = {exports: {}};\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nlodash_clonedeep.exports;\n\n(function (module, exports) {\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t promiseTag = '[object Promise]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t symbolTag = '[object Symbol]',\n\t weakMapTag = '[object WeakMap]';\n\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to match `RegExp` flags from their coerced string values. */\n\tvar reFlags = /\\w*$/;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n\t/** Used to identify `toStringTag` values supported by `_.clone`. */\n\tvar cloneableTags = {};\n\tcloneableTags[argsTag] = cloneableTags[arrayTag] =\n\tcloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n\tcloneableTags[boolTag] = cloneableTags[dateTag] =\n\tcloneableTags[float32Tag] = cloneableTags[float64Tag] =\n\tcloneableTags[int8Tag] = cloneableTags[int16Tag] =\n\tcloneableTags[int32Tag] = cloneableTags[mapTag] =\n\tcloneableTags[numberTag] = cloneableTags[objectTag] =\n\tcloneableTags[regexpTag] = cloneableTags[setTag] =\n\tcloneableTags[stringTag] = cloneableTags[symbolTag] =\n\tcloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n\tcloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n\tcloneableTags[errorTag] = cloneableTags[funcTag] =\n\tcloneableTags[weakMapTag] = false;\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t/** Detect free variable `exports`. */\n\tvar freeExports = exports && !exports.nodeType && exports;\n\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\t/**\n\t * Adds the key-value `pair` to `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to modify.\n\t * @param {Array} pair The key-value pair to add.\n\t * @returns {Object} Returns `map`.\n\t */\n\tfunction addMapEntry(map, pair) {\n\t // Don't return `map.set` because it's not chainable in IE 11.\n\t map.set(pair[0], pair[1]);\n\t return map;\n\t}\n\n\t/**\n\t * Adds `value` to `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to modify.\n\t * @param {*} value The value to add.\n\t * @returns {Object} Returns `set`.\n\t */\n\tfunction addSetEntry(set, value) {\n\t // Don't return `set.add` because it's not chainable in IE 11.\n\t set.add(value);\n\t return set;\n\t}\n\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t if (initAccum && length) {\n\t accumulator = array[++index];\n\t }\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Converts `map` to its key-value pairs.\n\t *\n\t * @private\n\t * @param {Object} map The map to convert.\n\t * @returns {Array} Returns the key-value pairs.\n\t */\n\tfunction mapToArray(map) {\n\t var index = -1,\n\t result = Array(map.size);\n\n\t map.forEach(function(value, key) {\n\t result[++index] = [key, value];\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined,\n\t Symbol = root.Symbol,\n\t Uint8Array = root.Uint8Array,\n\t getPrototype = overArg(Object.getPrototypeOf, Object),\n\t objectCreate = Object.create,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t splice = arrayProto.splice;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeGetSymbols = Object.getOwnPropertySymbols,\n\t nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n\t nativeKeys = overArg(Object.keys, Object);\n\n\t/* Built-in method references that are verified to be native. */\n\tvar DataView = getNative(root, 'DataView'),\n\t Map = getNative(root, 'Map'),\n\t Promise = getNative(root, 'Promise'),\n\t Set = getNative(root, 'Set'),\n\t WeakMap = getNative(root, 'WeakMap'),\n\t nativeCreate = getNative(Object, 'create');\n\n\t/** Used to detect maps, sets, and weakmaps. */\n\tvar dataViewCtorString = toSource(DataView),\n\t mapCtorString = toSource(Map),\n\t promiseCtorString = toSource(Promise),\n\t setCtorString = toSource(Set),\n\t weakMapCtorString = toSource(WeakMap);\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t/**\n\t * Creates a stack cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Stack(entries) {\n\t this.__data__ = new ListCache(entries);\n\t}\n\n\t/**\n\t * Removes all key-value entries from the stack.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Stack\n\t */\n\tfunction stackClear() {\n\t this.__data__ = new ListCache;\n\t}\n\n\t/**\n\t * Removes `key` and its value from the stack.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction stackDelete(key) {\n\t return this.__data__['delete'](key);\n\t}\n\n\t/**\n\t * Gets the stack value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction stackGet(key) {\n\t return this.__data__.get(key);\n\t}\n\n\t/**\n\t * Checks if a stack value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Stack\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction stackHas(key) {\n\t return this.__data__.has(key);\n\t}\n\n\t/**\n\t * Sets the stack `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the stack cache instance.\n\t */\n\tfunction stackSet(key, value) {\n\t var cache = this.__data__;\n\t if (cache instanceof ListCache) {\n\t var pairs = cache.__data__;\n\t if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n\t pairs.push([key, value]);\n\t return this;\n\t }\n\t cache = this.__data__ = new MapCache(pairs);\n\t }\n\t cache.set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `Stack`.\n\tStack.prototype.clear = stackClear;\n\tStack.prototype['delete'] = stackDelete;\n\tStack.prototype.get = stackGet;\n\tStack.prototype.has = stackHas;\n\tStack.prototype.set = stackSet;\n\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\n\t var length = result.length,\n\t skipIndexes = !!length;\n\n\t for (var key in value) {\n\t if ((inherited || hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t/**\n\t * The base implementation of `_.assign` without support for multiple sources\n\t * or `customizer` functions.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseAssign(object, source) {\n\t return object && copyObject(source, keys(source), object);\n\t}\n\n\t/**\n\t * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n\t * traversed objects.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @param {boolean} [isFull] Specify a clone including symbols.\n\t * @param {Function} [customizer] The function to customize cloning.\n\t * @param {string} [key] The key of `value`.\n\t * @param {Object} [object] The parent object of `value`.\n\t * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n\t var result;\n\t if (customizer) {\n\t result = object ? customizer(value, key, object, stack) : customizer(value);\n\t }\n\t if (result !== undefined) {\n\t return result;\n\t }\n\t if (!isObject(value)) {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isArr) {\n\t result = initCloneArray(value);\n\t if (!isDeep) {\n\t return copyArray(value, result);\n\t }\n\t } else {\n\t var tag = getTag(value),\n\t isFunc = tag == funcTag || tag == genTag;\n\n\t if (isBuffer(value)) {\n\t return cloneBuffer(value, isDeep);\n\t }\n\t if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n\t if (isHostObject(value)) {\n\t return object ? value : {};\n\t }\n\t result = initCloneObject(isFunc ? {} : value);\n\t if (!isDeep) {\n\t return copySymbols(value, baseAssign(result, value));\n\t }\n\t } else {\n\t if (!cloneableTags[tag]) {\n\t return object ? value : {};\n\t }\n\t result = initCloneByTag(value, tag, baseClone, isDeep);\n\t }\n\t }\n\t // Check for circular references and return its corresponding clone.\n\t stack || (stack = new Stack);\n\t var stacked = stack.get(value);\n\t if (stacked) {\n\t return stacked;\n\t }\n\t stack.set(value, result);\n\n\t if (!isArr) {\n\t var props = isFull ? getAllKeys(value) : keys(value);\n\t }\n\t arrayEach(props || value, function(subValue, key) {\n\t if (props) {\n\t key = subValue;\n\t subValue = value[key];\n\t }\n\t // Recursively populate clone (susceptible to call stack limits).\n\t assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(proto) {\n\t return isObject(proto) ? objectCreate(proto) : {};\n\t}\n\n\t/**\n\t * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n\t * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n\t * symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @param {Function} symbolsFunc The function to get the symbols of `object`.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n\t var result = keysFunc(object);\n\t return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n\t}\n\n\t/**\n\t * The base implementation of `getTag`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t return objectToString.call(value);\n\t}\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `buffer`.\n\t *\n\t * @private\n\t * @param {Buffer} buffer The buffer to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Buffer} Returns the cloned buffer.\n\t */\n\tfunction cloneBuffer(buffer, isDeep) {\n\t if (isDeep) {\n\t return buffer.slice();\n\t }\n\t var result = new buffer.constructor(buffer.length);\n\t buffer.copy(result);\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `arrayBuffer`.\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n\t * @returns {ArrayBuffer} Returns the cloned array buffer.\n\t */\n\tfunction cloneArrayBuffer(arrayBuffer) {\n\t var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n\t new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `dataView`.\n\t *\n\t * @private\n\t * @param {Object} dataView The data view to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned data view.\n\t */\n\tfunction cloneDataView(dataView, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n\t return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n\t}\n\n\t/**\n\t * Creates a clone of `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned map.\n\t */\n\tfunction cloneMap(map, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n\t return arrayReduce(array, addMapEntry, new map.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of `regexp`.\n\t *\n\t * @private\n\t * @param {Object} regexp The regexp to clone.\n\t * @returns {Object} Returns the cloned regexp.\n\t */\n\tfunction cloneRegExp(regexp) {\n\t var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n\t result.lastIndex = regexp.lastIndex;\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned set.\n\t */\n\tfunction cloneSet(set, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n\t return arrayReduce(array, addSetEntry, new set.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of the `symbol` object.\n\t *\n\t * @private\n\t * @param {Object} symbol The symbol object to clone.\n\t * @returns {Object} Returns the cloned symbol object.\n\t */\n\tfunction cloneSymbol(symbol) {\n\t return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n\t}\n\n\t/**\n\t * Creates a clone of `typedArray`.\n\t *\n\t * @private\n\t * @param {Object} typedArray The typed array to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned typed array.\n\t */\n\tfunction cloneTypedArray(typedArray, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n\t return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\n\t/**\n\t * Copies the values of `source` to `array`.\n\t *\n\t * @private\n\t * @param {Array} source The array to copy values from.\n\t * @param {Array} [array=[]] The array to copy values to.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\n\t var index = -1,\n\t length = props.length;\n\n\t while (++index < length) {\n\t var key = props[index];\n\n\t var newValue = customizer\n\t ? customizer(object[key], source[key], key, object, source)\n\t : undefined;\n\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\n\t/**\n\t * Copies own symbol properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy symbols from.\n\t * @param {Object} [object={}] The object to copy symbols to.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copySymbols(source, object) {\n\t return copyObject(source, getSymbols(source), object);\n\t}\n\n\t/**\n\t * Creates an array of own enumerable property names and symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction getAllKeys(object) {\n\t return baseGetAllKeys(object, keys, getSymbols);\n\t}\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable symbol properties of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of symbols.\n\t */\n\tvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n\t/**\n\t * Gets the `toStringTag` of `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tvar getTag = baseGetTag;\n\n\t// Fallback for data views, maps, sets, and weak maps in IE 11,\n\t// for data views in Edge < 14, and promises in Node.js.\n\tif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n\t (Map && getTag(new Map) != mapTag) ||\n\t (Promise && getTag(Promise.resolve()) != promiseTag) ||\n\t (Set && getTag(new Set) != setTag) ||\n\t (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n\t getTag = function(value) {\n\t var result = objectToString.call(value),\n\t Ctor = result == objectTag ? value.constructor : undefined,\n\t ctorString = Ctor ? toSource(Ctor) : undefined;\n\n\t if (ctorString) {\n\t switch (ctorString) {\n\t case dataViewCtorString: return dataViewTag;\n\t case mapCtorString: return mapTag;\n\t case promiseCtorString: return promiseTag;\n\t case setCtorString: return setTag;\n\t case weakMapCtorString: return weakMapTag;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\n\t/**\n\t * Initializes an array clone.\n\t *\n\t * @private\n\t * @param {Array} array The array to clone.\n\t * @returns {Array} Returns the initialized clone.\n\t */\n\tfunction initCloneArray(array) {\n\t var length = array.length,\n\t result = array.constructor(length);\n\n\t // Add properties assigned by `RegExp#exec`.\n\t if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n\t result.index = array.index;\n\t result.input = array.input;\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Initializes an object clone.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneObject(object) {\n\t return (typeof object.constructor == 'function' && !isPrototype(object))\n\t ? baseCreate(getPrototype(object))\n\t : {};\n\t}\n\n\t/**\n\t * Initializes an object clone based on its `toStringTag`.\n\t *\n\t * **Note:** This function only supports cloning values with tags of\n\t * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @param {string} tag The `toStringTag` of the object to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n\t var Ctor = object.constructor;\n\t switch (tag) {\n\t case arrayBufferTag:\n\t return cloneArrayBuffer(object);\n\n\t case boolTag:\n\t case dateTag:\n\t return new Ctor(+object);\n\n\t case dataViewTag:\n\t return cloneDataView(object, isDeep);\n\n\t case float32Tag: case float64Tag:\n\t case int8Tag: case int16Tag: case int32Tag:\n\t case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n\t return cloneTypedArray(object, isDeep);\n\n\t case mapTag:\n\t return cloneMap(object, isDeep, cloneFunc);\n\n\t case numberTag:\n\t case stringTag:\n\t return new Ctor(object);\n\n\t case regexpTag:\n\t return cloneRegExp(object);\n\n\t case setTag:\n\t return cloneSet(object, isDeep, cloneFunc);\n\n\t case symbolTag:\n\t return cloneSymbol(object);\n\t }\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n\t return value === proto;\n\t}\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t/**\n\t * This method is like `_.clone` except that it recursively clones `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 1.0.0\n\t * @category Lang\n\t * @param {*} value The value to recursively clone.\n\t * @returns {*} Returns the deep cloned value.\n\t * @see _.clone\n\t * @example\n\t *\n\t * var objects = [{ 'a': 1 }, { 'b': 2 }];\n\t *\n\t * var deep = _.cloneDeep(objects);\n\t * console.log(deep[0] === objects[0]);\n\t * // => false\n\t */\n\tfunction cloneDeep(value) {\n\t return baseClone(value, true, true);\n\t}\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\n\t/**\n\t * This method returns a new empty array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {Array} Returns the new empty array.\n\t * @example\n\t *\n\t * var arrays = _.times(2, _.stubArray);\n\t *\n\t * console.log(arrays);\n\t * // => [[], []]\n\t *\n\t * console.log(arrays[0] === arrays[1]);\n\t * // => false\n\t */\n\tfunction stubArray() {\n\t return [];\n\t}\n\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\n\tmodule.exports = cloneDeep; \n} (lodash_clonedeep, lodash_clonedeep.exports));\n\nvar lodash_clonedeepExports = lodash_clonedeep.exports;\nvar cloneDeep = /*@__PURE__*/getDefaultExportFromCjs(lodash_clonedeepExports);\n\nfunction applyContextDelta(context, delta, logger) {\n try {\n if (logger?.canPublish(\"trace\")) {\n logger?.trace(`applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`);\n }\n if (!delta) {\n return context;\n }\n if (delta.reset) {\n context = { ...delta.reset };\n return context;\n }\n context = deepClone(context, undefined);\n if (delta.commands) {\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n deletePath(context, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(context, command.value, command.path);\n }\n }\n return context;\n }\n const added = delta.added;\n const updated = delta.updated;\n const removed = delta.removed;\n if (added) {\n Object.keys(added).forEach((key) => {\n context[key] = added[key];\n });\n }\n if (updated) {\n Object.keys(updated).forEach((key) => {\n mergeObjectsProperties(key, context, updated);\n });\n }\n if (removed) {\n removed.forEach((key) => {\n delete context[key];\n });\n }\n return context;\n }\n catch (e) {\n logger?.error(`error applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`, e);\n return context;\n }\n}\nfunction deepClone(obj, hash) {\n return cloneDeep(obj);\n}\nconst mergeObjectsProperties = (key, what, withWhat) => {\n const right = withWhat[key];\n if (right === undefined) {\n return what;\n }\n const left = what[key];\n if (!left || !right) {\n what[key] = right;\n return what;\n }\n if (typeof left === \"string\" ||\n typeof left === \"number\" ||\n typeof left === \"boolean\" ||\n typeof right === \"string\" ||\n typeof right === \"number\" ||\n typeof right === \"boolean\" ||\n Array.isArray(left) ||\n Array.isArray(right)) {\n what[key] = right;\n return what;\n }\n what[key] = Object.assign({}, left, right);\n return what;\n};\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n }\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n if (x.constructor !== y.constructor) {\n return false;\n }\n for (const p in x) {\n if (!x.hasOwnProperty(p)) {\n continue;\n }\n if (!y.hasOwnProperty(p)) {\n return false;\n }\n if (x[p] === y[p]) {\n continue;\n }\n if (typeof (x[p]) !== \"object\") {\n return false;\n }\n if (!deepEqual(x[p], y[p])) {\n return false;\n }\n }\n for (const p in y) {\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\n return false;\n }\n }\n return true;\n}\nfunction setValueToPath(obj, value, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n obj[pathArr[i]] = {};\n }\n if (typeof obj[pathArr[i]] !== \"object\") {\n obj[pathArr[i]] = {};\n }\n obj = obj[pathArr[i]];\n }\n obj[pathArr[i]] = value;\n}\nfunction isSubset(superObj, subObj) {\n return Object.keys(subObj).every((ele) => {\n if (typeof subObj[ele] === \"object\") {\n return isSubset(superObj?.[ele] || {}, subObj[ele] || {});\n }\n return subObj[ele] === superObj?.[ele];\n });\n}\nfunction deletePath(obj, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n return;\n }\n obj = obj[pathArr[i]];\n }\n delete obj[pathArr[i]];\n}\n\nclass GW3Bridge {\n _logger;\n _connection;\n _trackAllContexts;\n _reAnnounceKnownContexts;\n _gw3Session;\n _contextNameToData = {};\n _gw3Subscriptions = [];\n _nextCallbackSubscriptionNumber = 0;\n _creationPromises = {};\n _contextNameToId = {};\n _contextIdToName = {};\n _protocolVersion = undefined;\n _contextsTempCache = {};\n _contextsSubscriptionsCache = [];\n _systemContextsSubKey;\n get protocolVersion() {\n if (!this._protocolVersion) {\n const contextsDomainInfo = this._connection.availableDomains.find((d) => d.uri === \"context\");\n this._protocolVersion = contextsDomainInfo?.version ?? 1;\n }\n return this._protocolVersion;\n }\n get setPathSupported() {\n return this.protocolVersion >= 2;\n }\n constructor(config) {\n this._connection = config.connection;\n this._logger = config.logger;\n this._trackAllContexts = config.trackAllContexts;\n this._reAnnounceKnownContexts = config.reAnnounceKnownContexts;\n this._gw3Session = this._connection.domain(\"global\", [\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_CONTEXT_UPDATED,\n ]);\n this._gw3Session.disconnected(this.resetState.bind(this));\n this._gw3Session.onJoined((wasReconnect) => {\n if (!wasReconnect) {\n return;\n }\n if (!this._reAnnounceKnownContexts) {\n return this._connection.setLibReAnnounced({ name: \"contexts\" });\n }\n this.reInitiateState().then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }));\n });\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n }\n dispose() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n this._gw3Subscriptions.length = 0;\n for (const contextName in this._contextNameToData) {\n if (this._contextNameToId.hasOwnProperty(contextName)) {\n delete this._contextNameToData[contextName];\n }\n }\n }\n createContext(name, data) {\n if (name in this._creationPromises) {\n return this._creationPromises[name];\n }\n this._creationPromises[name] =\n this._gw3Session\n .send({\n type: GW_MESSAGE_CREATE_CONTEXT,\n domain: \"global\",\n name,\n data,\n lifetime: \"retained\",\n })\n .then((createContextMsg) => {\n this._contextNameToId[name] = createContextMsg.context_id;\n this._contextIdToName[createContextMsg.context_id] = name;\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\n contextData.isAnnounced = true;\n contextData.name = name;\n contextData.contextId = createContextMsg.context_id;\n contextData.context = createContextMsg.data || deepClone(data);\n contextData.hasReceivedSnapshot = true;\n this._contextNameToData[name] = contextData;\n delete this._creationPromises[name];\n return createContextMsg.context_id;\n });\n return this._creationPromises[name];\n }\n all() {\n return Object.keys(this._contextNameToData)\n .filter((name) => this._contextNameToData[name].isAnnounced);\n }\n async update(name, delta) {\n if (delta) {\n delta = deepClone(delta);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, delta);\n }\n let currentContext = contextData.context;\n if (!contextData.hasCallbacks()) {\n currentContext = await this.get(contextData.name);\n }\n const calculatedDelta = this.setPathSupported ?\n this.calculateContextDeltaV2(currentContext, delta) :\n this.calculateContextDeltaV1(currentContext, delta);\n if (!Object.keys(calculatedDelta.added).length\n && !Object.keys(calculatedDelta.updated).length\n && !calculatedDelta.removed.length\n && !calculatedDelta.commands?.length) {\n return Promise.resolve();\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: calculatedDelta,\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, calculatedDelta, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async set(name, data) {\n if (data) {\n data = deepClone(data);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, data);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { reset: data },\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n reset: data,\n added: {},\n removed: [],\n updated: {}\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n setPath(name, path, value) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPath operation is not supported, use Glue42 3.10 or later\");\n }\n return this.setPaths(name, [{ path, value }]);\n }\n async setPaths(name, pathValues) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPaths operation is not supported, use Glue42 3.10 or later\");\n }\n if (pathValues) {\n pathValues = deepClone(pathValues);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n const obj = {};\n for (const pathValue of pathValues) {\n setValueToPath(obj, pathValue.value, pathValue.path);\n }\n return this.createContext(name, obj);\n }\n const commands = [];\n for (const pathValue of pathValues) {\n if (pathValue.value === null) {\n commands.push({ type: \"remove\", path: pathValue.path });\n }\n else {\n commands.push({ type: \"set\", path: pathValue.path, value: pathValue.value });\n }\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { commands }\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n added: {},\n removed: [],\n updated: {},\n commands\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async get(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return Promise.resolve({});\n }\n if (contextData && (!contextData.hasCallbacks() || !contextData.hasReceivedSnapshot)) {\n return new Promise((resolve) => {\n this.subscribe(name, (data, _d, _r, un) => {\n this.unsubscribe(un);\n resolve(data);\n });\n });\n }\n const context = contextData?.context ?? {};\n return Promise.resolve(deepClone(context));\n }\n async subscribe(name, callback, subscriptionKey) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const thisCallbackSubscriptionNumber = typeof subscriptionKey === \"undefined\" ? this._nextCallbackSubscriptionNumber : subscriptionKey;\n if (typeof subscriptionKey === \"undefined\") {\n this._nextCallbackSubscriptionNumber += 1;\n }\n if (this._contextsSubscriptionsCache.every((subscription) => subscription.subKey !== this._nextCallbackSubscriptionNumber)) {\n this._contextsSubscriptionsCache.push({ contextName: name, subKey: thisCallbackSubscriptionNumber, callback });\n }\n let contextData = this._contextNameToData[name];\n if (!contextData ||\n !contextData.isAnnounced) {\n contextData = contextData || new GW3ContextData(undefined, name, false, undefined);\n this._contextNameToData[name] = contextData;\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n const hadCallbacks = contextData.hasCallbacks();\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n if (!hadCallbacks) {\n if (!contextData.joinedActivity) {\n if (contextData.context && contextData.sentExplicitSubscription) {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n return this.sendSubscribe(contextData)\n .then(() => thisCallbackSubscriptionNumber);\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n unsubscribe(subscriptionKey) {\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter((subscription) => subscription.subKey !== subscriptionKey);\n for (const name of Object.keys(this._contextNameToData)) {\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return;\n }\n const hadCallbacks = contextData.hasCallbacks();\n delete contextData.updateCallbacks[subscriptionKey];\n if (contextData.isAnnounced &&\n hadCallbacks &&\n !contextData.hasCallbacks() &&\n contextData.sentExplicitSubscription) {\n this.sendUnsubscribe(contextData).catch(() => { });\n }\n if (!contextData.isAnnounced &&\n !contextData.hasCallbacks()) {\n delete this._contextNameToData[name];\n }\n }\n }\n async destroy(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return Promise.reject(`context with ${name} does not exist`);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_DESTROY_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n handleUpdated(contextData, delta, extraData) {\n const oldContext = contextData.context;\n contextData.context = applyContextDelta(contextData.context, delta, this._logger);\n contextData.hasReceivedSnapshot = true;\n if (this._contextNameToData[contextData.name] === contextData &&\n !deepEqual(oldContext, contextData.context)) {\n this.invokeUpdateCallbacks(contextData, delta, extraData);\n }\n }\n subscribeToContextCreatedMessages() {\n const createdMessageTypes = [\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_ACTIVITY_CREATED,\n ];\n for (const createdMessageType of createdMessageTypes) {\n const sub = this._connection.on(createdMessageType, this.handleContextCreatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextCreatedMessage(contextCreatedMsg) {\n const createdMessageType = contextCreatedMsg.type;\n if (createdMessageType === GW_MESSAGE_ACTIVITY_CREATED) {\n this._contextNameToId[contextCreatedMsg.activity_id] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.activity_id;\n }\n else if (createdMessageType === GW_MESSAGE_CONTEXT_ADDED) {\n this._contextNameToId[contextCreatedMsg.name] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.name;\n }\n else ;\n const name = this._contextIdToName[contextCreatedMsg.context_id];\n if (!name) {\n throw new Error(\"Received created event for context with unknown name: \" + contextCreatedMsg.context_id);\n }\n if (!this._contextNameToId[name]) {\n throw new Error(\"Received created event for context with unknown id: \" + contextCreatedMsg.context_id);\n }\n let contextData = this._contextNameToData[name];\n if (contextData) {\n if (contextData.isAnnounced) {\n return;\n }\n else {\n if (!contextData.hasCallbacks()) {\n throw new Error(\"Assertion failure: contextData.hasCallbacks()\");\n }\n contextData.isAnnounced = true;\n contextData.contextId = contextCreatedMsg.context_id;\n contextData.activityId = contextCreatedMsg.activity_id;\n if (!contextData.sentExplicitSubscription) {\n this.sendSubscribe(contextData);\n }\n }\n }\n else {\n this._contextNameToData[name] = contextData =\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\n if (this._trackAllContexts) {\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\n }\n }\n }\n subscribeToContextUpdatedMessages() {\n const updatedMessageTypes = [\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_JOINED_ACTIVITY,\n ];\n for (const updatedMessageType of updatedMessageTypes) {\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextUpdatedMessage(contextUpdatedMsg) {\n const updatedMessageType = contextUpdatedMsg.type;\n const contextId = contextUpdatedMsg.context_id;\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\n const justSeen = !contextData || !contextData.isAnnounced;\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n if (!contextData) {\n contextData =\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\n }\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\n contextData.contextId = contextId;\n contextData.isAnnounced = true;\n contextData.activityId = contextUpdatedMsg.activity_id;\n contextData.joinedActivity = true;\n }\n else {\n if (!contextData || !contextData.isAnnounced) {\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\n contextData.sentExplicitSubscription = true;\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\n }\n else {\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\n }\n return;\n }\n }\n const oldContext = contextData.context;\n contextData.hasReceivedSnapshot = true;\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData.context = contextUpdatedMsg.data || {};\n }\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n contextData.context = contextUpdatedMsg.context_snapshot || {};\n }\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\n }\n else {\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\n }\n if (justSeen ||\n !deepEqual(contextData.context, oldContext) ||\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\n }\n }\n invokeUpdateCallbacks(contextData, delta, extraData) {\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\n if (delta.commands) {\n delta.added = delta.updated = delta.reset = {};\n delta.removed = [];\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n if (command.path.indexOf(\".\") === -1) {\n delta.removed.push(command.path);\n }\n setValueToPath(delta.updated, null, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(delta.updated, command.value, command.path);\n }\n }\n }\n for (const updateCallbackIndex in contextData.updateCallbacks) {\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\n try {\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\n }\n catch (err) {\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\n }\n }\n }\n }\n subscribeToContextDestroyedMessages() {\n const destroyedMessageTypes = [\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n ];\n for (const destroyedMessageType of destroyedMessageTypes) {\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextDestroyedMessage(destroyedMsg) {\n const destroyedMessageType = destroyedMsg.type;\n let contextId;\n let name;\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\n name = destroyedMsg.activity_id;\n contextId = this._contextNameToId[name];\n if (!contextId) {\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\n return;\n }\n }\n else {\n contextId = destroyedMsg.context_id;\n name = this._contextIdToName[contextId];\n if (!name) {\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\n return;\n }\n }\n delete this._contextIdToName[contextId];\n delete this._contextNameToId[name];\n const contextData = this._contextNameToData[name];\n delete this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\n return;\n }\n }\n sendSubscribe(contextData) {\n contextData.sentExplicitSubscription = true;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n sendUnsubscribe(contextData) {\n contextData.sentExplicitSubscription = false;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n calculateContextDeltaV1(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\n if (from) {\n for (const x of Object.keys(from)) {\n if (Object.keys(to).indexOf(x) !== -1\n && to[x] !== null\n && !deepEqual(from[x], to[x])) {\n delta.updated[x] = to[x];\n }\n }\n }\n for (const x of Object.keys(to)) {\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\n if (to[x] !== null) {\n delta.added[x] = to[x];\n }\n }\n else if (to[x] === null) {\n delta.removed.push(x);\n }\n }\n return delta;\n }\n calculateContextDeltaV2(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\n for (const x of Object.keys(to)) {\n if (to[x] !== null) {\n const fromX = from ? from[x] : null;\n if (!deepEqual(fromX, to[x])) {\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\n }\n }\n else {\n delta.commands?.push({ type: \"remove\", path: x });\n }\n }\n return delta;\n }\n resetState() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n if (this._systemContextsSubKey) {\n this.unsubscribe(this._systemContextsSubKey);\n delete this._systemContextsSubKey;\n }\n this._gw3Subscriptions = [];\n this._contextNameToId = {};\n this._contextIdToName = {};\n delete this._protocolVersion;\n this._contextsTempCache = Object.keys(this._contextNameToData).reduce((cacheSoFar, ctxName) => {\n cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\n return cacheSoFar;\n }, {});\n this._contextNameToData = {};\n }\n async reInitiateState() {\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n await Promise.all(this._contextsSubscriptionsCache.map((subscription) => this.subscribe(subscription.contextName, subscription.callback, subscription.subKey)));\n await this.flushQueue();\n for (const ctxName in this._contextsTempCache) {\n if (typeof this._contextsTempCache[ctxName] !== \"object\" || Object.keys(this._contextsTempCache[ctxName]).length === 0) {\n continue;\n }\n const lastKnownData = this._contextsTempCache[ctxName];\n this._logger.info(`Re-announcing known context: ${ctxName}`);\n await this.flushQueue();\n await this.update(ctxName, lastKnownData);\n }\n this._contextsTempCache = {};\n this._logger.info(\"Contexts are re-announced\");\n }\n flushQueue() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n }\n}\n\nclass ContextsModule {\n initTime;\n initStartTime;\n initEndTime;\n _bridge;\n constructor(config) {\n this._bridge = new GW3Bridge(config);\n }\n all() {\n return this._bridge.all();\n }\n update(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.update(name, data);\n }\n set(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.set(name, data);\n }\n setPath(name, path, data) {\n this.checkName(name);\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(data);\n return this.set(name, data);\n }\n return this._bridge.setPath(name, path, data);\n }\n setPaths(name, paths) {\n this.checkName(name);\n if (!Array.isArray(paths)) {\n throw new Error(\"Please provide the paths as an array of PathValues!\");\n }\n for (const { path, value } of paths) {\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(value);\n }\n }\n return this._bridge.setPaths(name, paths);\n }\n subscribe(name, callback) {\n this.checkName(name);\n if (typeof callback !== \"function\") {\n throw new Error(\"Please provide the callback as a function!\");\n }\n return this._bridge\n .subscribe(name, (data, delta, removed, key, extraData) => callback(data, delta, removed, () => this._bridge.unsubscribe(key), extraData))\n .then((key) => () => {\n this._bridge.unsubscribe(key);\n });\n }\n get(name) {\n this.checkName(name);\n return this._bridge.get(name);\n }\n ready() {\n return Promise.resolve(this);\n }\n destroy(name) {\n this.checkName(name);\n return this._bridge.destroy(name);\n }\n get setPathSupported() {\n return this._bridge.setPathSupported;\n }\n checkName(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new Error(\"Please provide the name as a non-empty string!\");\n }\n }\n checkPath(path) {\n if (typeof path !== \"string\") {\n throw new Error(\"Please provide the path as a dot delimited string!\");\n }\n }\n checkData(data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Please provide the data as an object!\");\n }\n }\n}\n\nfunction promisify (promise, successCallback, errorCallback) {\n if (typeof successCallback !== \"function\" && typeof errorCallback !== \"function\") {\n return promise;\n }\n if (typeof successCallback !== \"function\") {\n successCallback = () => { };\n }\n else if (typeof errorCallback !== \"function\") {\n errorCallback = () => { };\n }\n return promise.then(successCallback, errorCallback);\n}\n\nfunction rejectAfter(ms = 0, promise, error) {\n let timeout;\n const clearTimeoutIfThere = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n promise\n .then(() => {\n clearTimeoutIfThere();\n })\n .catch(() => {\n clearTimeoutIfThere();\n });\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => reject(error), ms);\n });\n}\n\nvar InvokeStatus;\n(function (InvokeStatus) {\n InvokeStatus[InvokeStatus[\"Success\"] = 0] = \"Success\";\n InvokeStatus[InvokeStatus[\"Error\"] = 1] = \"Error\";\n})(InvokeStatus || (InvokeStatus = {}));\nclass Client {\n protocol;\n repo;\n instance;\n configuration;\n constructor(protocol, repo, instance, configuration) {\n this.protocol = protocol;\n this.repo = repo;\n this.instance = instance;\n this.configuration = configuration;\n }\n subscribe(method, options, successCallback, errorCallback, existingSub) {\n const callProtocolSubscribe = (targetServers, stream, successProxy, errorProxy) => {\n options.methodResponseTimeout = options.methodResponseTimeout ?? options.waitTimeoutMs;\n this.protocol.client.subscribe(stream, options, targetServers, successProxy, errorProxy, existingSub);\n };\n const promise = new Promise((resolve, reject) => {\n const successProxy = (sub) => {\n resolve(sub);\n };\n const errorProxy = (err) => {\n reject(err);\n };\n if (!method) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n let methodDef;\n if (typeof method === \"string\") {\n methodDef = { name: method };\n }\n else {\n methodDef = method;\n }\n if (!methodDef.name) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n if (options === undefined) {\n options = {};\n }\n let target = options.target;\n if (target === undefined) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\") {\n reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\", \"best\", or an instance.`));\n return;\n }\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = options.method_response_timeout;\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = this.configuration.methodResponseTimeout;\n }\n }\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = options.wait_for_method_timeout;\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n const delayStep = 500;\n let delayTillNow = 0;\n let currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n callProtocolSubscribe(currentServers, currentServers[0].methods[0], successProxy, errorProxy);\n }\n else {\n const retry = () => {\n if (!target || !(options.waitTimeoutMs)) {\n return;\n }\n delayTillNow += delayStep;\n currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n const streamInfo = currentServers[0].methods[0];\n callProtocolSubscribe(currentServers, streamInfo, successProxy, errorProxy);\n }\n else if (delayTillNow >= options.waitTimeoutMs) {\n const def = typeof method === \"string\" ? { name: method } : method;\n callProtocolSubscribe(currentServers, def, successProxy, errorProxy);\n }\n else {\n setTimeout(retry, delayStep);\n }\n };\n setTimeout(retry, delayStep);\n }\n });\n return promisify(promise, successCallback, errorCallback);\n }\n servers(methodFilter) {\n const filterCopy = methodFilter === undefined\n ? undefined\n : { ...methodFilter };\n return this.getServers(filterCopy).map((serverMethodMap) => {\n return serverMethodMap.server.instance;\n });\n }\n methods(methodFilter) {\n if (typeof methodFilter === \"string\") {\n methodFilter = { name: methodFilter };\n }\n else {\n methodFilter = { ...methodFilter };\n }\n return this.getMethods(methodFilter);\n }\n methodsForInstance(instance) {\n return this.getMethodsForInstance(instance);\n }\n methodAdded(callback) {\n return this.repo.onMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.repo.onMethodRemoved(callback);\n }\n serverAdded(callback) {\n return this.repo.onServerAdded(callback);\n }\n serverRemoved(callback) {\n return this.repo.onServerRemoved((server, reason) => {\n callback(server, reason);\n });\n }\n serverMethodAdded(callback) {\n return this.repo.onServerMethodAdded((server, method) => {\n callback({ server, method });\n });\n }\n serverMethodRemoved(callback) {\n return this.repo.onServerMethodRemoved((server, method) => {\n callback({ server, method });\n });\n }\n async invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n const getInvokePromise = async () => {\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = { ...methodFilter };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n }\n if (!argumentObj) {\n argumentObj = {};\n }\n if (!target) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\" && target !== \"skipMine\") {\n return Promise.reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\" and \"best\".`));\n }\n if (!additionalOptions) {\n additionalOptions = {};\n }\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = additionalOptions.method_response_timeout;\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = this.configuration.methodResponseTimeout;\n }\n }\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = additionalOptions.wait_for_method_timeout;\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n if (additionalOptions.waitTimeoutMs !== undefined && typeof additionalOptions.waitTimeoutMs !== \"number\") {\n return Promise.reject(new Error(`\"${additionalOptions.waitTimeoutMs}\" is not a valid number for \"waitTimeoutMs\" `));\n }\n if (typeof argumentObj !== \"object\") {\n return Promise.reject(new Error(`The method arguments must be an object. method: ${methodDefinition.name}`));\n }\n let serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length === 0) {\n try {\n serversMethodMap = await this.tryToAwaitForMethods(methodDefinition, target, additionalOptions);\n }\n catch (err) {\n const method = {\n ...methodDefinition,\n getServers: () => [],\n supportsStreaming: false,\n objectTypes: methodDefinition.objectTypes ?? [],\n flags: methodDefinition.flags?.metadata ?? {}\n };\n const errorObj = {\n method,\n called_with: argumentObj,\n message: `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`,\n executed_by: undefined,\n returned: undefined,\n status: undefined,\n };\n return Promise.reject(errorObj);\n }\n }\n const timeout = additionalOptions.methodResponseTimeoutMs;\n const additionalOptionsCopy = additionalOptions;\n const invokePromises = serversMethodMap.map((serversMethodPair) => {\n const invId = nanoid(10);\n const method = serversMethodPair.methods[0];\n const server = serversMethodPair.server;\n const invokePromise = this.protocol.client.invoke(invId, method, argumentObj, server, additionalOptionsCopy);\n return Promise.race([\n invokePromise,\n rejectAfter(timeout, invokePromise, {\n invocationId: invId,\n message: `Invocation timeout (${timeout} ms) reached for method name: ${method?.name}, target instance: ${JSON.stringify(server.instance)}, options: ${JSON.stringify(additionalOptionsCopy)}`,\n status: InvokeStatus.Error,\n })\n ]);\n });\n const invocationMessages = await Promise.all(invokePromises);\n const results = this.getInvocationResultObj(invocationMessages, methodDefinition, argumentObj);\n const allRejected = invocationMessages.every((result) => result.status === InvokeStatus.Error);\n if (allRejected) {\n return Promise.reject(results);\n }\n return results;\n };\n return promisify(getInvokePromise(), success, error);\n }\n getInvocationResultObj(invocationResults, method, calledWith) {\n const all_return_values = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Success)\n .reduce((allValues, currentValue) => {\n allValues = [\n ...allValues,\n {\n executed_by: currentValue.instance,\n returned: currentValue.result,\n called_with: calledWith,\n method,\n message: currentValue.message,\n status: currentValue.status,\n }\n ];\n return allValues;\n }, []);\n const all_errors = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Error)\n .reduce((allErrors, currError) => {\n allErrors = [\n ...allErrors,\n {\n executed_by: currError.instance,\n called_with: calledWith,\n name: method.name,\n message: currError.message,\n }\n ];\n return allErrors;\n }, []);\n const invResult = invocationResults[0];\n const result = {\n method,\n called_with: calledWith,\n returned: invResult.result,\n executed_by: invResult.instance,\n all_return_values,\n all_errors,\n message: invResult.message,\n status: invResult.status\n };\n return result;\n }\n tryToAwaitForMethods(methodDefinition, target, additionalOptions) {\n return new Promise((resolve, reject) => {\n if (additionalOptions.waitTimeoutMs === 0) {\n reject();\n return;\n }\n const delayStep = 500;\n let delayTillNow = 0;\n const retry = () => {\n delayTillNow += delayStep;\n const serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length > 0) {\n clearInterval(interval);\n resolve(serversMethodMap);\n }\n else if (delayTillNow >= (additionalOptions.waitTimeoutMs || 10000)) {\n clearInterval(interval);\n reject();\n return;\n }\n };\n const interval = setInterval(retry, delayStep);\n });\n }\n filterByTarget(target, serverMethodMap) {\n if (typeof target === \"string\") {\n if (target === \"all\") {\n return [...serverMethodMap];\n }\n else if (target === \"best\") {\n const localMachine = serverMethodMap\n .find((s) => s.server.instance.isLocal);\n if (localMachine) {\n return [localMachine];\n }\n if (serverMethodMap[0] !== undefined) {\n return [serverMethodMap[0]];\n }\n }\n else if (target === \"skipMine\") {\n return serverMethodMap.filter(({ server }) => server.instance.peerId !== this.instance.peerId);\n }\n }\n else {\n let targetArray;\n if (!Array.isArray(target)) {\n targetArray = [target];\n }\n else {\n targetArray = target;\n }\n const allServersMatching = targetArray.reduce((matches, filter) => {\n const myMatches = serverMethodMap.filter((serverMethodPair) => {\n return this.instanceMatch(filter, serverMethodPair.server.instance);\n });\n return matches.concat(myMatches);\n }, []);\n return allServersMatching;\n }\n return [];\n }\n instanceMatch(instanceFilter, instanceDefinition) {\n return this.containsProps(instanceFilter, instanceDefinition);\n }\n methodMatch(methodFilter, methodDefinition) {\n return this.containsProps(methodFilter, methodDefinition);\n }\n containsProps(filter, repoMethod) {\n const filterProps = Object.keys(filter)\n .filter((prop) => {\n return filter[prop] !== undefined\n && filter[prop] !== null\n && typeof filter[prop] !== \"function\"\n && prop !== \"object_types\"\n && prop !== \"display_name\"\n && prop !== \"id\"\n && prop !== \"gatewayId\"\n && prop !== \"identifier\"\n && prop[0] !== \"_\";\n });\n return filterProps.every((prop) => {\n let isMatch;\n const filterValue = filter[prop];\n const repoMethodValue = repoMethod[prop];\n switch (prop) {\n case \"objectTypes\":\n isMatch = (filterValue || []).every((filterValueEl) => {\n return (repoMethodValue || []).includes(filterValueEl);\n });\n break;\n case \"flags\":\n isMatch = isSubset(repoMethodValue || {}, filterValue || {});\n break;\n default:\n isMatch = String(filterValue).toLowerCase() === String(repoMethodValue).toLowerCase();\n }\n return isMatch;\n });\n }\n getMethods(methodFilter) {\n if (methodFilter === undefined) {\n return this.repo.getMethods();\n }\n const methods = this.repo.getMethods().filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n return methods;\n }\n getMethodsForInstance(instanceFilter) {\n const allServers = this.repo.getServers();\n const matchingServers = allServers.filter((server) => {\n return this.instanceMatch(instanceFilter, server.instance);\n });\n if (matchingServers.length === 0) {\n return [];\n }\n let resultMethodsObject = {};\n if (matchingServers.length === 1) {\n resultMethodsObject = matchingServers[0].methods;\n }\n else {\n matchingServers.forEach((server) => {\n Object.keys(server.methods).forEach((methodKey) => {\n const method = server.methods[methodKey];\n resultMethodsObject[method.identifier] = method;\n });\n });\n }\n return Object.keys(resultMethodsObject)\n .map((key) => {\n return resultMethodsObject[key];\n });\n }\n getServers(methodFilter) {\n const servers = this.repo.getServers();\n if (methodFilter === undefined) {\n return servers.map((server) => {\n return { server, methods: [] };\n });\n }\n return servers.reduce((prev, current) => {\n const methodsForServer = Object.values(current.methods);\n const matchingMethods = methodsForServer.filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n if (matchingMethods.length > 0) {\n prev.push({ server: current, methods: matchingMethods });\n }\n return prev;\n }, []);\n }\n getServerMethodsByFilterAndTarget(methodFilter, target) {\n const serversMethodMap = this.getServers(methodFilter);\n return this.filterByTarget(target, serversMethodMap);\n }\n}\n\nclass ServerSubscription {\n protocol;\n repoMethod;\n subscription;\n constructor(protocol, repoMethod, subscription) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.subscription = subscription;\n }\n get stream() {\n if (!this.repoMethod.stream) {\n throw new Error(\"no stream\");\n }\n return this.repoMethod.stream;\n }\n get arguments() { return this.subscription.arguments || {}; }\n get branchKey() { return this.subscription.branchKey; }\n get instance() {\n if (!this.subscription.instance) {\n throw new Error(\"no instance\");\n }\n return this.subscription.instance;\n }\n close() {\n this.protocol.server.closeSingleSubscription(this.repoMethod, this.subscription);\n }\n push(data) {\n this.protocol.server.pushDataToSingle(this.repoMethod, this.subscription, data);\n }\n}\n\nclass Request {\n protocol;\n repoMethod;\n requestContext;\n arguments;\n instance;\n constructor(protocol, repoMethod, requestContext) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.requestContext = requestContext;\n this.arguments = requestContext.arguments;\n this.instance = requestContext.instance;\n }\n accept() {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, \"\");\n }\n acceptOnBranch(branch) {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, branch);\n }\n reject(reason) {\n this.protocol.server.rejectRequest(this.requestContext, this.repoMethod, reason);\n }\n}\n\nlet ServerStreaming$1 = class ServerStreaming {\n protocol;\n server;\n constructor(protocol, server) {\n this.protocol = protocol;\n this.server = server;\n protocol.server.onSubRequest((rc, rm) => this.handleSubRequest(rc, rm));\n protocol.server.onSubAdded((sub, rm) => this.handleSubAdded(sub, rm));\n protocol.server.onSubRemoved((sub, rm) => this.handleSubRemoved(sub, rm));\n }\n handleSubRequest(requestContext, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRequestHandler === \"function\")) {\n return;\n }\n const request = new Request(this.protocol, repoMethod, requestContext);\n repoMethod.streamCallbacks.subscriptionRequestHandler(request);\n }\n handleSubAdded(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionAddedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionAddedHandler(sub);\n }\n handleSubRemoved(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRemovedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionRemovedHandler(sub);\n }\n};\n\nclass ServerBranch {\n key;\n protocol;\n repoMethod;\n constructor(key, protocol, repoMethod) {\n this.key = key;\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n }\n subscriptions() {\n const subList = this.protocol.server.getSubscriptionList(this.repoMethod, this.key);\n return subList.map((sub) => {\n return new ServerSubscription(this.protocol, this.repoMethod, sub);\n });\n }\n close() {\n this.protocol.server.closeAllSubscriptions(this.repoMethod, this.key);\n }\n push(data) {\n this.protocol.server.pushData(this.repoMethod, data, [this.key]);\n }\n}\n\nclass ServerStream {\n _protocol;\n _repoMethod;\n _server;\n name;\n constructor(_protocol, _repoMethod, _server) {\n this._protocol = _protocol;\n this._repoMethod = _repoMethod;\n this._server = _server;\n this.name = this._repoMethod.definition.name;\n }\n branches(key) {\n const bList = this._protocol.server.getBranchList(this._repoMethod);\n if (key) {\n if (bList.indexOf(key) > -1) {\n return new ServerBranch(key, this._protocol, this._repoMethod);\n }\n return undefined;\n }\n else {\n return bList.map((branchKey) => {\n return new ServerBranch(branchKey, this._protocol, this._repoMethod);\n });\n }\n }\n branch(key) {\n return this.branches(key);\n }\n subscriptions() {\n const subList = this._protocol.server.getSubscriptionList(this._repoMethod);\n return subList.map((sub) => {\n return new ServerSubscription(this._protocol, this._repoMethod, sub);\n });\n }\n get definition() {\n const def2 = this._repoMethod.definition;\n return {\n accepts: def2.accepts,\n description: def2.description,\n displayName: def2.displayName,\n name: def2.name,\n objectTypes: def2.objectTypes,\n returns: def2.returns,\n supportsStreaming: def2.supportsStreaming,\n flags: def2.flags?.metadata,\n };\n }\n close() {\n this._protocol.server.closeAllSubscriptions(this._repoMethod);\n this._server.unregister(this._repoMethod.definition, true);\n }\n push(data, branches) {\n if (typeof branches !== \"string\" && !Array.isArray(branches) && branches !== undefined) {\n throw new Error(\"invalid branches should be string or string array\");\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n this._protocol.server.pushData(this._repoMethod, data, branches);\n }\n updateRepoMethod(repoMethod) {\n this._repoMethod = repoMethod;\n }\n}\n\nclass Server {\n protocol;\n serverRepository;\n streaming;\n invocations = 0;\n currentlyUnregistering = {};\n constructor(protocol, serverRepository) {\n this.protocol = protocol;\n this.serverRepository = serverRepository;\n this.streaming = new ServerStreaming$1(protocol, this);\n this.protocol.server.onInvoked(this.onMethodInvoked.bind(this));\n }\n createStream(streamDef, callbacks, successCallback, errorCallback, existingStream) {\n const promise = new Promise((resolve, reject) => {\n if (!streamDef) {\n reject(\"The stream name must be unique! Please, provide either a unique string for a stream name to “glue.interop.createStream()” or a “methodDefinition” object with a unique “name” property for the stream.\");\n return;\n }\n let streamMethodDefinition;\n if (typeof streamDef === \"string\") {\n streamMethodDefinition = { name: \"\" + streamDef };\n }\n else {\n streamMethodDefinition = { ...streamDef };\n }\n if (!streamMethodDefinition.name) {\n return reject(`The “name” property is required for the “streamDefinition” object and must be unique. Stream definition: ${JSON.stringify(streamMethodDefinition)}`);\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === streamMethodDefinition.name);\n if (nameAlreadyExists) {\n return reject(`A stream with the name \"${streamMethodDefinition.name}\" already exists! Please, provide a unique name for the stream.`);\n }\n streamMethodDefinition.supportsStreaming = true;\n if (!callbacks) {\n callbacks = {};\n }\n if (typeof callbacks.subscriptionRequestHandler !== \"function\") {\n callbacks.subscriptionRequestHandler = (request) => {\n request.accept();\n };\n }\n const repoMethod = this.serverRepository.add({\n definition: streamMethodDefinition,\n streamCallbacks: callbacks,\n protocolState: {},\n });\n this.protocol.server.createStream(repoMethod)\n .then(() => {\n let streamUserObject;\n if (existingStream) {\n streamUserObject = existingStream;\n existingStream.updateRepoMethod(repoMethod);\n }\n else {\n streamUserObject = new ServerStream(this.protocol, repoMethod, this);\n }\n repoMethod.stream = streamUserObject;\n resolve(streamUserObject);\n })\n .catch((err) => {\n if (repoMethod.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n reject(err);\n });\n });\n return promisify(promise, successCallback, errorCallback);\n }\n register(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallbackFunction = async (context, resultCallback) => {\n try {\n const result = callback(context.args, context.instance);\n if (result && typeof result.then === \"function\") {\n const resultValue = await result;\n resultCallback(undefined, resultValue);\n }\n else {\n resultCallback(undefined, result);\n }\n }\n catch (e) {\n resultCallback(e ?? \"\", e ?? \"\");\n }\n };\n wrappedCallbackFunction.userCallback = callback;\n return this.registerCore(methodDefinition, wrappedCallbackFunction);\n }\n registerAsync(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallback = async (context, resultCallback) => {\n try {\n let resultCalled = false;\n const success = (result) => {\n if (!resultCalled) {\n resultCallback(undefined, result);\n }\n resultCalled = true;\n };\n const error = (e) => {\n if (!resultCalled) {\n if (!e) {\n e = \"\";\n }\n resultCallback(e, e);\n }\n resultCalled = true;\n };\n const methodResult = callback(context.args, context.instance, success, error);\n if (methodResult && typeof methodResult.then === \"function\") {\n methodResult\n .then(success)\n .catch(error);\n }\n }\n catch (e) {\n resultCallback(e, undefined);\n }\n };\n wrappedCallback.userCallbackAsync = callback;\n return this.registerCore(methodDefinition, wrappedCallback);\n }\n async unregister(methodFilter, forStream = false) {\n if (methodFilter === undefined) {\n return Promise.reject(\"Please, provide either a unique string for a name or an object containing a “name” property.\");\n }\n if (typeof methodFilter === \"function\") {\n await this.unregisterWithPredicate(methodFilter, forStream);\n return;\n }\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = methodFilter;\n }\n if (methodDefinition.name === undefined) {\n return Promise.reject(\"Method name is required. Cannot find a method if the method name is undefined!\");\n }\n const methodToBeRemoved = this.serverRepository.getList().find((serverMethod) => {\n return serverMethod.definition.name === methodDefinition.name\n && (serverMethod.definition.supportsStreaming || false) === forStream;\n });\n if (!methodToBeRemoved) {\n return Promise.reject(`Method with a name \"${methodDefinition.name}\" does not exist or is not registered by your application!`);\n }\n await this.removeMethodsOrStreams([methodToBeRemoved]);\n }\n async unregisterWithPredicate(filterPredicate, forStream) {\n const methodsOrStreamsToRemove = this.serverRepository.getList()\n .filter((sm) => filterPredicate(sm.definition))\n .filter((serverMethod) => (serverMethod.definition.supportsStreaming || false) === forStream);\n if (!methodsOrStreamsToRemove || methodsOrStreamsToRemove.length === 0) {\n return Promise.reject(`Could not find a ${forStream ? \"stream\" : \"method\"} matching the specified condition!`);\n }\n await this.removeMethodsOrStreams(methodsOrStreamsToRemove);\n }\n removeMethodsOrStreams(methodsToRemove) {\n const methodUnregPromises = [];\n methodsToRemove.forEach((method) => {\n const promise = this.protocol.server.unregister(method)\n .then(() => {\n if (method.repoId) {\n this.serverRepository.remove(method.repoId);\n }\n });\n methodUnregPromises.push(promise);\n this.addAsCurrentlyUnregistering(method.definition.name, promise);\n });\n return Promise.all(methodUnregPromises);\n }\n async addAsCurrentlyUnregistering(methodName, promise) {\n const timeout = new Promise((resolve) => setTimeout(resolve, 5000));\n this.currentlyUnregistering[methodName] = Promise.race([promise, timeout]).then(() => {\n delete this.currentlyUnregistering[methodName];\n });\n }\n async registerCore(method, theFunction) {\n let methodDefinition;\n if (typeof method === \"string\") {\n methodDefinition = { name: \"\" + method };\n }\n else {\n methodDefinition = { ...method };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Please, provide a (unique) string value for the “name” property in the “methodDefinition” object: ${JSON.stringify(method)}`);\n }\n const unregisterInProgress = this.currentlyUnregistering[methodDefinition.name];\n if (typeof unregisterInProgress !== \"undefined\") {\n await unregisterInProgress;\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === methodDefinition.name);\n if (nameAlreadyExists) {\n return Promise.reject(`A method with the name \"${methodDefinition.name}\" already exists! Please, provide a unique name for the method.`);\n }\n if (methodDefinition.supportsStreaming) {\n return Promise.reject(`When you create methods with “glue.interop.register()” or “glue.interop.registerAsync()” the property “supportsStreaming” cannot be “true”. If you want “${methodDefinition.name}” to be a stream, please use the “glue.interop.createStream()” method.`);\n }\n const repoMethod = this.serverRepository.add({\n definition: methodDefinition,\n theFunction,\n protocolState: {},\n });\n return this.protocol.server.register(repoMethod)\n .catch((err) => {\n if (repoMethod?.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n throw err;\n });\n }\n onMethodInvoked(methodToExecute, invocationId, invocationArgs) {\n if (!methodToExecute || !methodToExecute.theFunction) {\n return;\n }\n methodToExecute.theFunction(invocationArgs, (err, result) => {\n if (err !== undefined && err !== null) {\n if (err.message && typeof err.message === \"string\") {\n err = err.message;\n }\n else if (typeof err !== \"string\") {\n try {\n err = JSON.stringify(err);\n }\n catch (unStrException) {\n err = `un-stringifyable error in onMethodInvoked! Top level prop names: ${Object.keys(err)}`;\n }\n }\n }\n if (!result) {\n result = {};\n }\n else if (typeof result !== \"object\" || Array.isArray(result)) {\n result = { _value: result };\n }\n this.protocol.server.methodInvocationResult(methodToExecute, invocationId, err, result);\n });\n }\n}\n\nclass InstanceWrapper {\n wrapped = {};\n constructor(API, instance, connection) {\n this.wrapped.getMethods = function () {\n return API.methodsForInstance(this);\n };\n this.wrapped.getStreams = function () {\n return API.methodsForInstance(this).filter((m) => m.supportsStreaming);\n };\n if (instance) {\n this.refreshWrappedObject(instance);\n }\n if (connection) {\n connection.loggedIn(() => {\n this.refresh(connection);\n });\n this.refresh(connection);\n }\n }\n unwrap() {\n return this.wrapped;\n }\n refresh(connection) {\n if (!connection) {\n return;\n }\n const resolvedIdentity = connection?.resolvedIdentity;\n const instance = Object.assign({}, resolvedIdentity ?? {}, { peerId: connection?.peerId });\n this.refreshWrappedObject(instance);\n }\n refreshWrappedObject(resolvedIdentity) {\n Object.keys(resolvedIdentity).forEach((key) => {\n this.wrapped[key] = resolvedIdentity[key];\n });\n this.wrapped.user = resolvedIdentity.user;\n this.wrapped.instance = resolvedIdentity.instance;\n this.wrapped.application = resolvedIdentity.application ?? nanoid(10);\n this.wrapped.applicationName = resolvedIdentity.applicationName;\n this.wrapped.pid = resolvedIdentity.pid ?? resolvedIdentity.process ?? Math.floor(Math.random() * 10000000000);\n this.wrapped.machine = resolvedIdentity.machine;\n this.wrapped.environment = resolvedIdentity.environment;\n this.wrapped.region = resolvedIdentity.region;\n this.wrapped.windowId = resolvedIdentity.windowId;\n this.wrapped.isLocal = resolvedIdentity.isLocal ?? true;\n this.wrapped.api = resolvedIdentity.api;\n this.wrapped.service = resolvedIdentity.service;\n this.wrapped.peerId = resolvedIdentity.peerId;\n }\n}\n\nconst hideMethodSystemFlags = (method) => {\n return {\n ...method,\n flags: method.flags.metadata || {}\n };\n};\nclass ClientRepository {\n logger;\n API;\n servers = {};\n myServer;\n methodsCount = {};\n callbacks = CallbackRegistryFactory();\n constructor(logger, API) {\n this.logger = logger;\n this.API = API;\n const peerId = this.API.instance.peerId;\n this.myServer = {\n id: peerId,\n methods: {},\n instance: this.API.instance,\n wrapper: this.API.unwrappedInstance,\n };\n this.servers[peerId] = this.myServer;\n }\n addServer(info, serverId) {\n this.logger.debug(`adding server ${serverId}`);\n const current = this.servers[serverId];\n if (current) {\n return current.id;\n }\n const wrapper = new InstanceWrapper(this.API, info);\n const serverEntry = {\n id: serverId,\n methods: {},\n instance: wrapper.unwrap(),\n wrapper,\n };\n this.servers[serverId] = serverEntry;\n this.callbacks.execute(\"onServerAdded\", serverEntry.instance);\n return serverId;\n }\n removeServerById(id, reason) {\n const server = this.servers[id];\n if (!server) {\n this.logger.warn(`not aware of server ${id}, my state ${JSON.stringify(Object.keys(this.servers))}`);\n return;\n }\n else {\n this.logger.debug(`removing server ${id}`);\n }\n Object.keys(server.methods).forEach((methodId) => {\n this.removeServerMethod(id, methodId);\n });\n delete this.servers[id];\n this.callbacks.execute(\"onServerRemoved\", server.instance, reason);\n }\n addServerMethod(serverId, method) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n if (server.methods[method.id]) {\n return;\n }\n const identifier = this.createMethodIdentifier(method);\n const that = this;\n const methodDefinition = {\n identifier,\n gatewayId: method.id,\n name: method.name,\n displayName: method.display_name,\n description: method.description,\n version: method.version,\n objectTypes: method.object_types || [],\n accepts: method.input_signature,\n returns: method.result_signature,\n supportsStreaming: typeof method.flags !== \"undefined\" ? method.flags.streaming : false,\n flags: method.flags ?? {},\n getServers: () => {\n return that.getServersByMethod(identifier);\n }\n };\n methodDefinition.object_types = methodDefinition.objectTypes;\n methodDefinition.display_name = methodDefinition.displayName;\n methodDefinition.version = methodDefinition.version;\n server.methods[method.id] = methodDefinition;\n const clientMethodDefinition = hideMethodSystemFlags(methodDefinition);\n if (!this.methodsCount[identifier]) {\n this.methodsCount[identifier] = 0;\n this.callbacks.execute(\"onMethodAdded\", clientMethodDefinition);\n }\n this.methodsCount[identifier] = this.methodsCount[identifier] + 1;\n this.callbacks.execute(\"onServerMethodAdded\", server.instance, clientMethodDefinition);\n return methodDefinition;\n }\n removeServerMethod(serverId, methodId) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n const method = server.methods[methodId];\n delete server.methods[methodId];\n const clientMethodDefinition = hideMethodSystemFlags(method);\n this.methodsCount[method.identifier] = this.methodsCount[method.identifier] - 1;\n if (this.methodsCount[method.identifier] === 0) {\n this.callbacks.execute(\"onMethodRemoved\", clientMethodDefinition);\n }\n this.callbacks.execute(\"onServerMethodRemoved\", server.instance, clientMethodDefinition);\n }\n getMethods() {\n return this.extractMethodsFromServers(Object.values(this.servers)).map(hideMethodSystemFlags);\n }\n getServers() {\n return Object.values(this.servers).map(this.hideServerMethodSystemFlags);\n }\n onServerAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerAdded\", callback);\n const serversWithMethodsToReplay = this.getServers().map((s) => s.instance);\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, serversWithMethodsToReplay, callback);\n }\n onMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodAdded\", callback);\n const methodsToReplay = this.getMethods();\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, methodsToReplay, callback);\n }\n onServerMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodAdded\", callback);\n let unsubCalled = false;\n const servers = this.getServers();\n setTimeout(() => {\n servers.forEach((server) => {\n const methods = server.methods;\n Object.keys(methods).forEach((methodId) => {\n if (!unsubCalled) {\n callback(server.instance, methods[methodId]);\n }\n });\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n onMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n getServerById(id) {\n const server = this.servers[id];\n if (!server) {\n return undefined;\n }\n return this.hideServerMethodSystemFlags(this.servers[id]);\n }\n reset() {\n Object.keys(this.servers).forEach((key) => {\n this.removeServerById(key, \"reset\");\n });\n this.servers = {\n [this.myServer.id]: this.myServer\n };\n this.methodsCount = {};\n }\n createMethodIdentifier(methodInfo) {\n const accepts = methodInfo.input_signature ?? \"\";\n const returns = methodInfo.result_signature ?? \"\";\n return (methodInfo.name + accepts + returns).toLowerCase();\n }\n getServersByMethod(identifier) {\n const allServers = [];\n Object.values(this.servers).forEach((server) => {\n Object.values(server.methods).forEach((method) => {\n if (method.identifier === identifier) {\n allServers.push(server.instance);\n }\n });\n });\n return allServers;\n }\n returnUnsubWithDelayedReplay(unsubscribeFunc, collectionToReplay, callback) {\n let unsubCalled = false;\n setTimeout(() => {\n collectionToReplay.forEach((item) => {\n if (!unsubCalled) {\n callback(item);\n }\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n hideServerMethodSystemFlags(server) {\n const clientMethods = {};\n Object.entries(server.methods).forEach(([name, method]) => {\n clientMethods[name] = hideMethodSystemFlags(method);\n });\n return {\n ...server,\n methods: clientMethods\n };\n }\n extractMethodsFromServers(servers) {\n const methods = Object.values(servers).reduce((clientMethods, server) => {\n return [...clientMethods, ...Object.values(server.methods)];\n }, []);\n return methods;\n }\n}\n\nclass ServerRepository {\n nextId = 0;\n methods = [];\n add(method) {\n method.repoId = String(this.nextId);\n this.nextId += 1;\n this.methods.push(method);\n return method;\n }\n remove(repoId) {\n if (typeof repoId !== \"string\") {\n return new TypeError(\"Expecting a string\");\n }\n this.methods = this.methods.filter((m) => {\n return m.repoId !== repoId;\n });\n }\n getById(id) {\n if (typeof id !== \"string\") {\n return undefined;\n }\n return this.methods.find((m) => {\n return m.repoId === id;\n });\n }\n getList() {\n return this.methods.map((m) => m);\n }\n length() {\n return this.methods.length;\n }\n reset() {\n this.methods = [];\n }\n}\n\nconst SUBSCRIPTION_REQUEST = \"onSubscriptionRequest\";\nconst SUBSCRIPTION_ADDED = \"onSubscriptionAdded\";\nconst SUBSCRIPTION_REMOVED = \"onSubscriptionRemoved\";\nclass ServerStreaming {\n session;\n repository;\n serverRepository;\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\n session.on(\"add-interest\", (msg) => {\n this.handleAddInterest(msg);\n });\n session.on(\"remove-interest\", (msg) => {\n this.handleRemoveInterest(msg);\n });\n }\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\n if (typeof branch !== \"string\") {\n branch = \"\";\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\n }\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n throw new TypeError(\"The streaming method is missing its branches.\");\n }\n const streamId = this.getStreamId(streamingMethod, branch);\n const key = requestContext.msg.subscription_id;\n const subscription = {\n id: key,\n arguments: requestContext.arguments,\n instance: requestContext.instance,\n branchKey: branch,\n streamId,\n subscribeMsg: requestContext.msg,\n };\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\n this.session.sendFireAndForget({\n type: \"accepted\",\n subscription_id: key,\n stream_id: streamId,\n });\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\n }\n rejectRequest(requestContext, streamingMethod, reason) {\n if (typeof reason !== \"string\") {\n reason = \"\";\n }\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\n }\n pushData(streamingMethod, data, branches) {\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n return;\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n if (typeof branches === \"string\") {\n branches = [branches];\n }\n else if (!Array.isArray(branches) || branches.length <= 0) {\n branches = [];\n }\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\n .filter((br) => {\n if (!branches || branches.length === 0) {\n return true;\n }\n return branches.indexOf(br.key) >= 0;\n }).map((br) => {\n return br.streamId;\n });\n streamIdList.forEach((streamId) => {\n const publishMessage = {\n type: \"publish\",\n stream_id: streamId,\n data,\n };\n this.session.sendFireAndForget(publishMessage);\n });\n }\n pushDataToSingle(method, subscription, data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n const postMessage = {\n type: \"post\",\n subscription_id: subscription.id,\n data,\n };\n this.session.sendFireAndForget(postMessage);\n }\n closeSingleSubscription(streamingMethod, subscription) {\n if (streamingMethod.protocolState.subscriptionsMap) {\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\n }\n const dropSubscriptionMessage = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping a single subscription\",\n };\n this.session.sendFireAndForget(dropSubscriptionMessage);\n subscription.instance;\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n closeMultipleSubscriptions(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n let subscriptionsToClose = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey === \"string\") {\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n subscriptionsToClose.forEach((subscription) => {\n delete subscriptionsMap[subscription.id];\n const drop = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\n };\n this.session.sendFireAndForget(drop);\n });\n }\n getSubscriptionList(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n let subscriptions = [];\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey !== \"string\") {\n subscriptions = allSubscriptions;\n }\n else {\n subscriptions = allSubscriptions.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n return subscriptions;\n }\n getBranchList(streamingMethod) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n const result = [];\n allSubscriptions.forEach((sub) => {\n let branch = \"\";\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\n branch = sub.branchKey;\n }\n if (result.indexOf(branch) === -1) {\n result.push(branch);\n }\n });\n return result;\n }\n onSubAdded(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\n }\n onSubRequest(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\n }\n onSubRemoved(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\n }\n handleRemoveInterest(msg) {\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (typeof msg.subscription_id !== \"string\" ||\n typeof streamingMethod !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\n return;\n }\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\n this.callbacks.add(eventName, handlerFunc);\n }\n getNextStreamId() {\n return this.nextStreamId++ + \"\";\n }\n handleAddInterest(msg) {\n const caller = this.repository.getServerById(msg.caller_id);\n const instance = caller?.instance ?? {};\n const requestContext = {\n msg,\n arguments: msg.arguments_kv || {},\n instance,\n };\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (streamingMethod === undefined) {\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\n return;\n }\n if (streamingMethod.protocolState.subscriptionsMap &&\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\n return;\n }\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\n }\n sendSubscriptionFailed(reason, subscriptionId) {\n const errorMessage = {\n type: \"error\",\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\n reason,\n request_id: subscriptionId,\n };\n this.session.sendFireAndForget(errorMessage);\n }\n getStreamId(streamingMethod, branchKey) {\n if (typeof branchKey !== \"string\") {\n branchKey = \"\";\n }\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\n }\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\n return branch.key === branchKey;\n })[0];\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\n if (typeof streamId !== \"string\" || streamId === \"\") {\n streamId = this.getNextStreamId();\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\n }\n return streamId;\n }\n}\n\nclass ServerProtocol {\n session;\n clientRepository;\n serverRepository;\n logger;\n callbacks = CallbackRegistryFactory();\n streaming;\n constructor(session, clientRepository, serverRepository, logger) {\n this.session = session;\n this.clientRepository = clientRepository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository);\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\n }\n createStream(repoMethod) {\n repoMethod.protocolState.subscriptionsMap = {};\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\n return this.register(repoMethod, true);\n }\n register(repoMethod, isStreaming) {\n const methodDef = repoMethod.definition;\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\n const registerMsg = {\n type: \"register\",\n methods: [{\n id: repoMethod.repoId,\n name: methodDef.name,\n display_name: methodDef.displayName,\n description: methodDef.description,\n version: methodDef.version,\n flags,\n object_types: methodDef.objectTypes || methodDef.object_types,\n input_signature: methodDef.accepts,\n result_signature: methodDef.returns,\n restrictions: undefined,\n }],\n };\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\n .then(() => {\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\n })\n .catch((msg) => {\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\n throw msg;\n });\n }\n onInvoked(callback) {\n this.callbacks.add(\"onInvoked\", callback);\n }\n methodInvocationResult(method, invocationId, err, result) {\n let msg;\n if (err || err === \"\") {\n msg = {\n type: \"error\",\n request_id: invocationId,\n reason_uri: \"agm.errors.client_error\",\n reason: err,\n context: result,\n peer_id: undefined,\n };\n }\n else {\n msg = {\n type: \"yield\",\n invocation_id: invocationId,\n peer_id: this.session.peerId,\n result,\n request_id: undefined,\n };\n }\n this.session.sendFireAndForget(msg);\n }\n async unregister(method) {\n const msg = {\n type: \"unregister\",\n methods: [method.repoId],\n };\n await this.session.send(msg);\n }\n getBranchList(method) {\n return this.streaming.getBranchList(method);\n }\n getSubscriptionList(method, branchKey) {\n return this.streaming.getSubscriptionList(method, branchKey);\n }\n closeAllSubscriptions(method, branchKey) {\n this.streaming.closeMultipleSubscriptions(method, branchKey);\n }\n pushData(method, data, branches) {\n this.streaming.pushData(method, data, branches);\n }\n pushDataToSingle(method, subscription, data) {\n this.streaming.pushDataToSingle(method, subscription, data);\n }\n closeSingleSubscription(method, subscription) {\n this.streaming.closeSingleSubscription(method, subscription);\n }\n acceptRequestOnBranch(requestContext, method, branch) {\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\n }\n rejectRequest(requestContext, method, reason) {\n this.streaming.rejectRequest(requestContext, method, reason);\n }\n onSubRequest(callback) {\n this.streaming.onSubRequest(callback);\n }\n onSubAdded(callback) {\n this.streaming.onSubAdded(callback);\n }\n onSubRemoved(callback) {\n this.streaming.onSubRemoved(callback);\n }\n handleInvokeMessage(msg) {\n const invocationId = msg.invocation_id;\n const callerId = msg.caller_id;\n const methodId = msg.method_id;\n const args = msg.arguments_kv;\n const methodList = this.serverRepository.getList();\n const method = methodList.filter((m) => {\n return m.repoId === methodId;\n })[0];\n if (method === undefined) {\n return;\n }\n const client = this.clientRepository.getServerById(callerId)?.instance;\n const invocationArgs = { args, instance: client };\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\n }\n}\n\nclass UserSubscription {\n repository;\n subscriptionData;\n get requestArguments() {\n return this.subscriptionData.params.arguments || {};\n }\n get servers() {\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\n if (pair.subscriptionId) {\n const server = this.repository.getServerById(pair.serverId)?.instance;\n if (server) {\n servers.push(server);\n }\n }\n return servers;\n }, []);\n }\n get serverInstance() {\n return this.servers[0];\n }\n get stream() {\n return this.subscriptionData.method;\n }\n constructor(repository, subscriptionData) {\n this.repository = repository;\n this.subscriptionData = subscriptionData;\n }\n onData(dataCallback) {\n if (typeof dataCallback !== \"function\") {\n throw new TypeError(\"The data callback must be a function.\");\n }\n this.subscriptionData.handlers.onData.push(dataCallback);\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\n this.subscriptionData.queued.data.forEach((dataItem) => {\n dataCallback(dataItem);\n });\n }\n }\n onClosed(closedCallback) {\n if (typeof closedCallback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onClosed.push(closedCallback);\n }\n onFailed(callback) {\n }\n onConnected(callback) {\n if (typeof callback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onConnected.push(callback);\n }\n close() {\n this.subscriptionData.close();\n }\n setNewSubscription(newSub) {\n this.subscriptionData = newSub;\n }\n}\n\nclass TimedCache {\n config;\n cache = [];\n timeoutIds = [];\n constructor(config) {\n this.config = config;\n }\n add(element) {\n const id = nanoid(10);\n this.cache.push({ id, element });\n const timeoutId = setTimeout(() => {\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\n if (elementIdx < 0) {\n return;\n }\n this.cache.splice(elementIdx, 1);\n }, this.config.ELEMENT_TTL_MS);\n this.timeoutIds.push(timeoutId);\n }\n flush() {\n const elements = this.cache.map((entry) => entry.element);\n this.timeoutIds.forEach((id) => clearInterval(id));\n this.cache = [];\n this.timeoutIds = [];\n return elements;\n }\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\nconst STATUS_SUBSCRIBED = \"subscribed\";\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\nclass ClientStreaming {\n session;\n repository;\n logger;\n subscriptionsList = {};\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\n subscriptionIdToLocalKeyMap = {};\n nextSubLocalKey = 0;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"subscribed\", this.handleSubscribed);\n session.on(\"event\", this.handleEventData);\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\n }\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\n if (targetServers.length === 0) {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\n });\n return;\n }\n const subLocalKey = this.getNextSubscriptionLocalKey();\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\n if (typeof pendingSub !== \"object\") {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\n });\n return;\n }\n targetServers.forEach((target) => {\n const serverId = target.server.id;\n const method = target.methods.find((m) => m.name === streamingMethod.name);\n if (!method) {\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\n return;\n }\n pendingSub.trackedServers.push({\n serverId,\n subscriptionId: undefined,\n });\n const msg = {\n type: \"subscribe\",\n server_id: serverId,\n method_id: method.gatewayId,\n arguments_kv: params.arguments,\n };\n this.session.send(msg, { serverId, subLocalKey })\n .then((m) => this.handleSubscribed(m))\n .catch((err) => this.handleErrorSubscribing(err));\n });\n }\n drainSubscriptions() {\n const existing = Object.values(this.subscriptionsList);\n this.subscriptionsList = {};\n this.subscriptionIdToLocalKeyMap = {};\n return existing;\n }\n drainSubscriptionsCache() {\n return this.timedCache.flush();\n }\n getNextSubscriptionLocalKey() {\n const current = this.nextSubLocalKey;\n this.nextSubLocalKey += 1;\n return current;\n }\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\n const subsInfo = {\n localKey: subLocalKey,\n status: STATUS_AWAITING_ACCEPT,\n method,\n params,\n success,\n error,\n trackedServers: [],\n handlers: {\n onData: existingSub?.handlers.onData || [],\n onClosed: existingSub?.handlers.onClosed || [],\n onConnected: existingSub?.handlers.onConnected || [],\n },\n queued: {\n data: [],\n closers: [],\n },\n timeoutId: undefined,\n close: () => this.closeSubscription(subLocalKey),\n subscription: existingSub?.subscription\n };\n if (!existingSub) {\n if (params.onData) {\n subsInfo.handlers.onData.push(params.onData);\n }\n if (params.onClosed) {\n subsInfo.handlers.onClosed.push(params.onClosed);\n }\n if (params.onConnected) {\n subsInfo.handlers.onConnected.push(params.onConnected);\n }\n }\n this.subscriptionsList[subLocalKey] = subsInfo;\n subsInfo.timeoutId = setTimeout(() => {\n if (this.subscriptionsList[subLocalKey] === undefined) {\n return;\n }\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n error({\n method,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\n });\n delete this.subscriptionsList[subLocalKey];\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return (typeof server.subscriptionId !== \"undefined\");\n });\n delete pendingSub.timeoutId;\n if (pendingSub.trackedServers.length <= 0) {\n this.callOnClosedHandlers(pendingSub);\n delete this.subscriptionsList[subLocalKey];\n }\n }\n }, timeout);\n return subsInfo;\n }\n handleErrorSubscribing = (errorResponse) => {\n const tag = errorResponse._tag;\n const subLocalKey = tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return server.serverId !== tag.serverId;\n });\n if (pendingSub.trackedServers.length <= 0) {\n clearTimeout(pendingSub.timeoutId);\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\n ' Publisher said \"' + errorResponse.reason + '\".' :\n \" No reason given.\";\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\n JSON.stringify(pendingSub.params.arguments) :\n \"{}\";\n pendingSub.error({\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\n called_with: pendingSub.params.arguments,\n method: pendingSub.method,\n });\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\n this.callOnClosedHandlers(pendingSub);\n }\n delete this.subscriptionsList[subLocalKey];\n }\n };\n handleSubscribed = (msg) => {\n const subLocalKey = msg._tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n const serverId = msg._tag.serverId;\n const acceptingServer = pendingSub.trackedServers\n .filter((server) => {\n return server.serverId === serverId;\n })[0];\n if (typeof acceptingServer !== \"object\") {\n return;\n }\n acceptingServer.subscriptionId = msg.subscription_id;\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\n pendingSub.status = STATUS_SUBSCRIBED;\n if (isFirstResponse) {\n let reconnect = false;\n let sub = pendingSub.subscription;\n if (sub) {\n sub.setNewSubscription(pendingSub);\n pendingSub.success(sub);\n reconnect = true;\n }\n else {\n sub = new UserSubscription(this.repository, pendingSub);\n pendingSub.subscription = sub;\n pendingSub.success(sub);\n }\n for (const handler of pendingSub.handlers.onConnected) {\n try {\n handler(sub.serverInstance, reconnect);\n }\n catch (e) {\n }\n }\n }\n };\n handleEventData = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const trackedServersFound = subscription.trackedServers.filter((s) => {\n return s.subscriptionId === msg.subscription_id;\n });\n if (trackedServersFound.length !== 1) {\n return;\n }\n const isPrivateData = msg.oob;\n const sendingServerId = trackedServersFound[0].serverId;\n const server = this.repository.getServerById(sendingServerId);\n const receivedStreamData = () => {\n return {\n data: msg.data,\n server: server?.instance ?? {},\n requestArguments: subscription.params.arguments,\n message: undefined,\n private: isPrivateData,\n };\n };\n const onDataHandlers = subscription.handlers.onData;\n const queuedData = subscription.queued.data;\n if (onDataHandlers.length > 0) {\n onDataHandlers.forEach((callback) => {\n if (typeof callback === \"function\") {\n callback(receivedStreamData());\n }\n });\n }\n else {\n queuedData.push(receivedStreamData());\n }\n };\n handleSubscriptionCancelled = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const expectedNewLength = subscription.trackedServers.length - 1;\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\n if (server.subscriptionId === msg.subscription_id) {\n subscription.queued.closers.push(server.serverId);\n return false;\n }\n else {\n return true;\n }\n });\n if (subscription.trackedServers.length !== expectedNewLength) {\n return;\n }\n if (subscription.trackedServers.length <= 0) {\n this.timedCache.add(subscription);\n clearTimeout(subscription.timeoutId);\n this.callOnClosedHandlers(subscription);\n delete this.subscriptionsList[subLocalKey];\n }\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n };\n callOnClosedHandlers(subscription, reason) {\n const closersCount = subscription.queued.closers.length;\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\n let closingServer;\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\n }\n subscription.handlers.onClosed.forEach((callback) => {\n if (typeof callback !== \"function\") {\n return;\n }\n callback({\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\n requestArguments: subscription.params.arguments || {},\n server: closingServer,\n stream: subscription.method,\n });\n });\n }\n closeSubscription(subLocalKey) {\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n subscription.trackedServers.forEach((server) => {\n if (typeof server.subscriptionId === \"undefined\") {\n return;\n }\n subscription.queued.closers.push(server.serverId);\n this.session.sendFireAndForget({\n type: \"unsubscribe\",\n subscription_id: server.subscriptionId,\n reason_uri: \"\",\n reason: ON_CLOSE_MSG_CLIENT_INIT,\n });\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\n });\n subscription.trackedServers = [];\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\n delete this.subscriptionsList[subLocalKey];\n }\n}\n\nclass ClientProtocol {\n session;\n repository;\n logger;\n streaming;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\n this.streaming = new ClientStreaming(session, repository, logger);\n }\n subscribe(stream, options, targetServers, success, error, existingSub) {\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\n }\n invoke(id, method, args, target) {\n const serverId = target.id;\n const methodId = method.gatewayId;\n const msg = {\n type: \"call\",\n server_id: serverId,\n method_id: methodId,\n arguments_kv: args,\n };\n return this.session.send(msg, { invocationId: id, serverId })\n .then((m) => this.handleResultMessage(m))\n .catch((err) => this.handleInvocationError(err));\n }\n drainSubscriptions() {\n return this.streaming.drainSubscriptions();\n }\n drainSubscriptionsCache() {\n return this.streaming.drainSubscriptionsCache();\n }\n handlePeerAdded(msg) {\n const newPeerId = msg.new_peer_id;\n const remoteId = msg.identity;\n const isLocal = msg.meta ? msg.meta.local : true;\n const pid = Number(remoteId.process);\n const serverInfo = {\n machine: remoteId.machine,\n pid: isNaN(pid) ? remoteId.process : pid,\n instance: remoteId.instance,\n application: remoteId.application,\n applicationName: remoteId.applicationName,\n environment: remoteId.environment,\n region: remoteId.region,\n user: remoteId.user,\n windowId: remoteId.windowId,\n peerId: newPeerId,\n api: remoteId.api,\n isLocal\n };\n this.repository.addServer(serverInfo, newPeerId);\n }\n handlePeerRemoved(msg) {\n const removedPeerId = msg.removed_id;\n const reason = msg.reason;\n this.repository.removeServerById(removedPeerId, reason);\n }\n handleMethodsAddedMessage(msg) {\n const serverId = msg.server_id;\n const methods = msg.methods;\n methods.forEach((method) => {\n this.repository.addServerMethod(serverId, method);\n });\n }\n handleMethodsRemovedMessage(msg) {\n const serverId = msg.server_id;\n const methodIdList = msg.methods;\n const server = this.repository.getServerById(serverId);\n if (server) {\n const serverMethodKeys = Object.keys(server.methods);\n serverMethodKeys.forEach((methodKey) => {\n const method = server.methods[methodKey];\n if (methodIdList.indexOf(method.gatewayId) > -1) {\n this.repository.removeServerMethod(serverId, methodKey);\n }\n });\n }\n }\n handleResultMessage(msg) {\n const invocationId = msg._tag.invocationId;\n const result = msg.result;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n return {\n invocationId,\n result,\n instance: server?.instance,\n status: InvokeStatus.Success,\n message: \"\"\n };\n }\n handleInvocationError(msg) {\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\n if (\"_tag\" in msg) {\n const invocationId = msg._tag.invocationId;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n const message = msg.reason;\n const context = msg.context;\n return {\n invocationId,\n result: context,\n instance: server?.instance,\n status: InvokeStatus.Error,\n message\n };\n }\n else {\n return {\n invocationId: \"\",\n message: msg.message,\n status: InvokeStatus.Error,\n error: msg\n };\n }\n }\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\n let resolveReadyPromise;\n const readyPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n const session = connection.domain(\"agm\", [\"subscribed\"]);\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\n async function handleReconnect() {\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\n client.drainSubscriptionsCache().forEach((sub) => {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`soft-subscribing to method ${methodInfo.name} DONE`)).catch((error) => logger.warn(`subscribing to method ${methodInfo.name} failed: ${JSON.stringify(error)}}`));\n });\n const reconnectionPromises = [];\n const existingSubscriptions = client.drainSubscriptions();\n for (const sub of existingSubscriptions) {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\n }\n const registeredMethods = serverRepository.getList();\n serverRepository.reset();\n for (const method of registeredMethods) {\n const def = method.definition;\n if (method.stream) {\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallback) {\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallbackAsync) {\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n }\n await Promise.all(reconnectionPromises);\n logger.info(\"Interop is re-announced\");\n }\n function handleInitialJoin() {\n if (resolveReadyPromise) {\n resolveReadyPromise({\n client,\n server,\n });\n resolveReadyPromise = undefined;\n }\n }\n session.onJoined((reconnect) => {\n clientRepository.addServer(instance, connection.peerId);\n if (reconnect) {\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\n }\n else {\n handleInitialJoin();\n }\n });\n session.onLeft(() => {\n clientRepository.reset();\n });\n session.join();\n return readyPromise;\n}\n\nclass Interop {\n instance;\n readyPromise;\n client;\n server;\n unwrappedInstance;\n protocol;\n clientRepository;\n serverRepository;\n constructor(configuration) {\n if (typeof configuration === \"undefined\") {\n throw new Error(\"configuration is required\");\n }\n if (typeof configuration.connection === \"undefined\") {\n throw new Error(\"configuration.connections is required\");\n }\n const connection = configuration.connection;\n if (typeof configuration.methodResponseTimeout !== \"number\") {\n configuration.methodResponseTimeout = 30 * 1000;\n }\n if (typeof configuration.waitTimeoutMs !== \"number\") {\n configuration.waitTimeoutMs = 30 * 1000;\n }\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\n this.instance = this.unwrappedInstance.unwrap();\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\n this.serverRepository = new ServerRepository();\n let protocolPromise;\n if (connection.protocolVersion === 3) {\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\n }\n else {\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\n }\n this.readyPromise = protocolPromise.then((protocol) => {\n this.protocol = protocol;\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\n this.server = new Server(this.protocol, this.serverRepository);\n return this;\n });\n }\n ready() {\n return this.readyPromise;\n }\n serverRemoved(callback) {\n return this.client.serverRemoved(callback);\n }\n serverAdded(callback) {\n return this.client.serverAdded(callback);\n }\n serverMethodRemoved(callback) {\n return this.client.serverMethodRemoved(callback);\n }\n serverMethodAdded(callback) {\n return this.client.serverMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.client.methodRemoved(callback);\n }\n methodAdded(callback) {\n return this.client.methodAdded(callback);\n }\n methodsForInstance(instance) {\n return this.client.methodsForInstance(instance);\n }\n methods(methodFilter) {\n return this.client.methods(methodFilter);\n }\n servers(methodFilter) {\n return this.client.servers(methodFilter);\n }\n subscribe(method, options, successCallback, errorCallback) {\n return this.client.subscribe(method, options, successCallback, errorCallback);\n }\n createStream(streamDef, callbacks, successCallback, errorCallback) {\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\n }\n unregister(methodFilter) {\n return this.server.unregister(methodFilter);\n }\n registerAsync(methodDefinition, callback) {\n return this.server.registerAsync(methodDefinition, callback);\n }\n register(methodDefinition, callback) {\n return this.server.register(methodDefinition, callback);\n }\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\n }\n waitForMethod(name) {\n const pw = new PromiseWrapper();\n const unsubscribe = this.client.methodAdded((m) => {\n if (m.name === name) {\n unsubscribe();\n pw.resolve(m);\n }\n });\n return pw.promise;\n }\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\nclass MessageBus {\n connection;\n logger;\n peerId;\n session;\n subscriptions;\n readyPromise;\n constructor(connection, logger) {\n this.connection = connection;\n this.logger = logger;\n this.peerId = connection.peerId;\n this.subscriptions = [];\n this.session = connection.domain(\"bus\", successMessages);\n this.readyPromise = this.session.join();\n this.readyPromise.then(() => {\n this.watchOnEvent();\n });\n }\n ready() {\n return this.readyPromise;\n }\n publish = (topic, data, options) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"publish\",\n topic,\n data,\n peer_id: this.peerId,\n routing_key: routingKey,\n target_identity: target\n });\n this.session.send(args);\n };\n subscribe = (topic, callback, options) => {\n return new Promise((resolve, reject) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"subscribe\",\n topic,\n peer_id: this.peerId,\n routing_key: routingKey,\n source: target\n });\n this.session.send(args)\n .then((response) => {\n const { subscription_id } = response;\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\n resolve({\n unsubscribe: () => {\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId });\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\n return Promise.resolve();\n }\n });\n })\n .catch((error) => reject(error));\n });\n };\n watchOnEvent = () => {\n this.session.on(\"event\", (args) => {\n const { data, subscription_id } = args;\n const source = args[\"publisher-identity\"];\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\n if (subscription) {\n if (!subscription.source) {\n subscription.callback(data, subscription.topic, source);\n }\n else {\n if (this.keysMatch(subscription.source, source)) {\n subscription.callback(data, subscription.topic, source);\n }\n }\n }\n });\n };\n removeEmptyValues(obj) {\n const cleaned = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== undefined && obj[key] !== null) {\n cleaned[key] = obj[key];\n }\n });\n return cleaned;\n }\n keysMatch(obj1, obj2) {\n const keysObj1 = Object.keys(obj1);\n let allMatch = true;\n keysObj1.forEach((key) => {\n if (obj1[key] !== obj2[key]) {\n allMatch = false;\n }\n });\n return allMatch;\n }\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\n const glueInitTimer = timer(\"glue\");\n userConfig = userConfig || {};\n ext = ext || {};\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\n let _connection;\n let _interop;\n let _logger;\n let _metrics;\n let _contexts;\n let _bus;\n let _allowTrace;\n const libs = {};\n function registerLib(name, inner, t) {\n _allowTrace = _logger.canPublish(\"trace\");\n if (_allowTrace) {\n _logger.trace(`registering ${name} module`);\n }\n const done = () => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (_allowTrace) {\n _logger.trace(`${name} is ready - ${t.endTime - t.startTime}`);\n }\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready().then(() => {\n done();\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false\n });\n registerLib(\"contexts\", _contexts, initTimer);\n return _contexts;\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\n }\n async function setupBus() {\n if (!internalConfig.bus) {\n return Promise.resolve();\n }\n const initTimer = timer(\"bus\");\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\n registerLib(\"bus\", _bus, initTimer);\n return Promise.resolve();\n }\n function setupExternalLibs(externalLibs) {\n try {\n externalLibs.forEach((lib) => {\n setupExternalLib(lib.name, lib.create);\n });\n return Promise.resolve();\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n function setupExternalLib(name, createCallback) {\n const initTimer = timer(name);\n const lib = createCallback(libs);\n if (lib) {\n registerLib(name, lib, initTimer);\n }\n }\n function waitForLibs() {\n const libsReadyPromises = Object.keys(libs).map((key) => {\n const lib = libs[key];\n return lib.ready ?\n lib.ready() : Promise.resolve();\n });\n return Promise.all(libsReadyPromises);\n }\n function constructGlueObject() {\n const feedbackFunc = (feedbackInfo) => {\n if (!_interop) {\n return;\n }\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\n };\n const info = {\n coreVersion: version,\n version: internalConfig.version\n };\n glueInitTimer.stop();\n const glue = {\n feedback: feedbackFunc,\n info,\n logger: _logger,\n interop: _interop,\n agm: _interop,\n connection: _connection,\n metrics: _metrics,\n contexts: _contexts,\n bus: _bus,\n version: internalConfig.version,\n userConfig,\n done: () => {\n _logger?.info(\"done called by user...\");\n return _connection.logout();\n }\n };\n glue.performance = {\n get glueVer() {\n return internalConfig.version;\n },\n get glueConfig() {\n return JSON.stringify(userConfig);\n },\n get browser() {\n return window.performance.timing.toJSON();\n },\n get memory() {\n return window.performance.memory;\n },\n get initTimes() {\n const all = getAllTimers();\n return Object.keys(all).map((key) => {\n const t = all[key];\n return {\n name: key,\n duration: t.endTime - t.startTime,\n marks: t.marks,\n startTime: t.startTime,\n endTime: t.endTime\n };\n });\n }\n };\n Object.keys(libs).forEach((key) => {\n const lib = libs[key];\n glue[key] = lib;\n });\n glue.config = {};\n Object.keys(internalConfig).forEach((k) => {\n glue.config[k] = internalConfig[k];\n });\n if (ext && ext.extOptions) {\n Object.keys(ext.extOptions).forEach((k) => {\n glue.config[k] = ext?.extOptions[k];\n });\n }\n if (ext?.enrichGlue) {\n ext.enrichGlue(glue);\n }\n if (iodesktop && iodesktop.updatePerfData) {\n iodesktop.updatePerfData(glue.performance);\n }\n if (glue.agm) {\n const deprecatedDecorator = (fn, wrong, proper) => {\n return function () {\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\n return fn.apply(glue.agm, arguments);\n };\n };\n const agmAny = glue.agm;\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\n }\n return glue;\n }\n async function registerInstanceIfNeeded() {\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\n if (isMethodAvailable) {\n try {\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\n }\n catch (error) {\n const typedError = error;\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\n }\n }\n }\n }\n return preloadPromise\n .then(setupLogger)\n .then(setupConnection)\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\n .then(() => _interop.readyPromise)\n .then(() => registerInstanceIfNeeded())\n .then(() => {\n return setupExternalLibs(internalConfig.libs || []);\n })\n .then(waitForLibs)\n .then(constructGlueObject)\n .catch((err) => {\n return Promise.reject({\n err,\n libs\n });\n });\n};\nif (typeof window !== \"undefined\") {\n window.IOConnectCore = IOConnectCoreFactory;\n}\nIOConnectCoreFactory.version = version;\nIOConnectCoreFactory.default = IOConnectCoreFactory;\n\nexport { IOConnectCoreFactory as default };\n//# sourceMappingURL=core.es.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map",null,null,null,null,null,null,null,null,null,null,"let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nexport let nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MetricTypes","STRING","NUMBER","TIMESTAMP","OBJECT","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","send","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","sendFireAndForget","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","err","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","logger","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","require","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","warn","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","rejectConnectionRequest","extMode","typeToValidate","rejection","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","loggedIn","handleSuccessMessage","handleErrorMessage","sm","requestsMap","destination","wasReconnect","handleJoined","requestId","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","errorMsg","leave","onLeft","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","trace","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","handleDisconnected","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","hasCallbacks","lodash_clonedeep","exports","module","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","propertyIsEnumerable","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","getMapData","getValue","pop","hash","string","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","cloneDeep","applyContextDelta","delta","reset","deepClone","commands","command","deletePath","setValueToPath","added","updated","removed","mergeObjectsProperties","obj","what","withWhat","right","deepEqual","y","p","pathArr","isSubset","superObj","subObj","every","ele","ContextsModule","initTime","initStartTime","initEndTime","_bridge","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","subscribe","_d","_r","un","subscriptionKey","thisCallbackSubscriptionNumber","subscription","subKey","hadCallbacks","clone","sendSubscribe","sendUnsubscribe","destroy","_","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","to","cacheSoFar","ctxName","flushQueue","lastKnownData","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","waitTimeoutMs","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","getServers","serverMethodMap","server","getMethods","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodResponseTimeoutMs","serversMethodMap","tryToAwaitForMethods","errorObj","supportsStreaming","objectTypes","flags","metadata","called_with","executed_by","returned","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","isLocal","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","prev","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","accepts","displayName","returns","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","onInvoked","onMethodInvoked","createStream","streamDef","existingStream","streamMethodDefinition","getList","some","serverMethod","protocolState","streamUserObject","repoId","remove","register","wrappedCallbackFunction","resultCallback","args","userCallback","registerCore","registerAsync","wrappedCallback","resultCalled","methodResult","userCallbackAsync","forStream","unregisterWithPredicate","methodToBeRemoved","removeMethodsOrStreams","filterPredicate","methodsOrStreamsToRemove","methodsToRemove","methodUnregPromises","addAsCurrentlyUnregistering","methodName","theFunction","unregisterInProgress","methodToExecute","invocationArgs","unStrException","_value","methodInvocationResult","InstanceWrapper","wrapped","API","getStreams","refreshWrappedObject","refresh","unwrap","user","pid","floor","machine","environment","region","hideMethodSystemFlags","ClientRepository","myServer","methodsCount","wrapper","unwrappedInstance","addServer","serverId","serverEntry","removeServerById","methodId","removeServerMethod","addServerMethod","createMethodIdentifier","that","gatewayId","display_name","object_types","input_signature","result_signature","getServersByMethod","clientMethodDefinition","extractMethodsFromServers","hideServerMethodSystemFlags","unsubscribeFunc","serversWithMethodsToReplay","returnUnsubWithDelayedReplay","methodsToReplay","unsubCalled","getServerById","methodInfo","allServers","collectionToReplay","item","clientMethods","ServerRepository","nextId","TypeError","getById","SUBSCRIPTION_REQUEST","SUBSCRIPTION_ADDED","SUBSCRIPTION_REMOVED","ServerStreaming","repository","ERR_URI_SUBSCRIPTION_FAILED","nextStreamId","handleAddInterest","handleRemoveInterest","streamingMethod","subscriptionsMap","branchKeyToStreamIdMap","streamId","getStreamId","subscription_id","subscribeMsg","stream_id","sendSubscriptionFailed","br","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","errorMessage","reason_uri","needleBranch","ServerProtocol","clientRepository","handleInvokeMessage","isStreaming","registerMsg","restrictions","invocation_id","callerId","UserSubscription","subscriptionData","requestArguments","params","trackedServers","serverInstance","onData","dataCallback","queued","dataItem","onClosed","closedCallback","onFailed","onConnected","setNewSubscription","newSub","TimedCache","timeoutIds","timeoutId","elementIdx","findIndex","ELEMENT_TTL_MS","flush","elements","STATUS_AWAITING_ACCEPT","STATUS_SUBSCRIBED","ERR_MSG_SUB_FAILED","ON_CLOSE_MSG_CLIENT_INIT","ClientStreaming","subscriptionsList","timedCache","subscriptionIdToLocalKeyMap","nextSubLocalKey","handleSubscribed","handleEventData","handleSubscriptionCancelled","subLocalKey","getNextSubscriptionLocalKey","pendingSub","registerSubscription","server_id","handleErrorSubscribing","drainSubscriptions","drainSubscriptionsCache","subsInfo","localKey","closers","closeSubscription","callOnClosedHandlers","errorResponse","callArgs","acceptingServer","isFirstResponse","trackedServersFound","isPrivateData","oob","sendingServerId","receivedStreamData","private","onDataHandlers","queuedData","expectedNewLength","closersCount","closingServerId","closingServer","ClientProtocol","handlePeerAdded","handlePeerRemoved","handleMethodsAddedMessage","handleMethodsRemovedMessage","handleResultMessage","handleInvocationError","newPeerId","new_peer_id","remoteId","meta","local","Number","serverInfo","removedPeerId","removed_id","methodIdList","gW3ProtocolFactory","libConfig","readyPromise","reconnectionPromises","existingSubscriptions","registeredMethods","handleReconnect","protocolPromise","waitForMethod","MessageBus","watchOnEvent","publish","topic","routingKey","removeEmptyValues","routing_key","target_identity","response","keysMatch","cleaned","obj1","obj2","keysObj1","allMatch","IOConnectCoreFactory","userConfig","ext","iodesktop","preloadPromise","gdPreloadPromise","glueInitTimer","internalConfig","nodeStartingContext","startingContextString","env","_GD_STARTING_CONTEXT_","getApplication","glue42electron","applicationConfig","gwConfig","gateway","instanceId","gwURL","uniqueAppName","appInstanceId","getConnection","windowAsAny","containerApplication","htmlContainer","containerName","bus","gwToken","defaultLevel","gdConsoleLevel","consoleLogLevel","getLogger","contexts","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","setupMetrics","initTimer","metricsPublishingEnabledFunc","getMetricsPublishingEnabled","setupInterop","agmConfig","setupContexts","hasActivities","activities","setupBus","setupExternalLibs","externalLibs","createCallback","setupExternalLib","authPromise","authConfig","RegisterInstanceMethodName","typedError","registerInstanceIfNeeded","libsReadyPromises","coreVersion","glue","feedback","feedbackInfo","agm","glueVer","glueConfig","browser","timing","initTimes","duration","extOptions","enrichGlue","updatePerfData","deprecatedDecorator","fn","wrong","proper","agmAny","method_added","method_removed","server_added","server_method_aded","server_method_removed","IOConnectCore","ActivityEntity","_id","_update","_updateCore","_beforeDelete","isNumber","isString","isUndefined","isUndefinedOrNull","isNullOrWhiteSpace","str","isBoolean","ifNotUndefined","doWithIt","ActivityType","ownerWindow","helperWindows","_ownerWindow","_helperWindows","hw","covertToWindowDef","initiate","_manager","windowType","_b","WindowType","appByWindowTypeGetter","_appByWindowTypeGetter","windows","getWindows","activity","isIndependent","createWindow","EntityEvent","entitiy","entity","EntityEventContext","eventType","ActivityStatusChangeEventContext","newStatus","oldStatus","EntityEventType","StatusChange","ActivityContextChangedEventContext","ActivityContextChange","Added","Removed","Updated","Closed","ActivityWindowEvent","ActivityWindowJoinedActivity","ActivityWindowLeftActivity","ActivityState","Created","Started","Destroyed","ActivityAGM","_activity","_ensureHasAgm","AGM","util.isUndefinedOrNull","w","methodNames","methodsForWindow","currentWindowMethod","activityServers","util.isString","potentialTargets","util.isArray","firstElem","_isInstance","_isActivityWindow","win","parameters","AttachedActivityDescriptor","manager","ownerActivityId","_ownerActivityId","ownerId","windowIds","frameColor","detach","descriptor","detachActivities","nextTick","cb","nodeify","util.isFunction","resp","Activity","actType","_actType","_status","_context","_ownerId","_agm","getActivityType","owner","addWindow","addWindowToActivity","createStackedWindows","windowTypes","leaveWindowFromActivity","getWindowsByType","setContext","setActivityContext","updateContext","updateActivityContext","onStatusChange","subscribeActivityEvents","ns","os","onWindowEvent","subscribeWindowEvents","onContextChanged","subscribeActivityContextChanged","act","stopActivity","attach","attachActivities","onActivityAttached","subscribeActivitiesAttached","newActId","oldActId","onDetached","subscribeActivitiesDetached","newAct","originalActivity","_updateDescriptors","allStates","_attached","attached","setFrameColor","color","callbacksToWait","underlyingWindow","getFrameColor","LogLevel","Trace","Debug","Info","Warn","GetNamed","Get","GetTypeName","GlueLogger","_glueLogger","Level","_getMessage","ActivityWindow","windowGetter","hcWindowId","_type","_activityId","_instance","_isIndependent","_windowGetter","_hcWindowId","getBounds","getWindowBounds","getWindowType","util.isUndefined","getActivityById","isOwner","setVisible","isVisible","setWindowVisibility","activate","focus","activateWindow","setBounds","bounds","setWindowBounds","closeWindow","onActivityJoined","_subscribeForActivityWindowEvent","onActivityRemoved","ActivityStatus","getMessage","gwMmessageError","gwMessageAddActivityTypes","gwMessageActivityCreated","gwMessageActivityDestroyed","gwMessageActivityInitiated","gwMessageJoinedActivity","gwMessageActivityJoined","gwMessageActivityLeft","gwMessageOwnerChanged","gwMessageAddPeerFactories","gwMessagePeerFactoriesAdded","gwMessagePeerFactoriesRemoved","gwMessagePeerCreated","GW3Bridge","activityTypeGwMessageEntityToActivityType","nameToWindowType","windowName","owner_type","helper_types","peerFactoryGwMessageEntityToWindowType","peer_type","activityGwMessageToActivity","owner_id","activity_type","activityToActivityStatusChangeEvent","_activityChangeCallbacks","_activityTypeStatusChangeCallbacks","_activityWindowChangeCallbacks","_windowTypeStatusChangeCallbacks","_peerIdAndFactoryIdToPeerType","_peerFactoriesRegisteredByUs","_contextSubscriptions","_activityTypesInitiatedFromMe","_config","_windows","_sessionJoinedPromise","_sessionJoinedPromiseResolve","_activityJoinedPromise","_activityJoinedPromiseResolve","activityInfo","addRefreshHandler","setGWToken","addWillNavigateHandler","bridgeType","forwardActivityTypeMessagesToStatusEventHandlers","handleActivityCreatedMessage","handleActivityDestroyedMessage","forwardActivityMessagesToStatusEventHandlers","forwardActivityCreatedAndJoinedActivityToActivityWindowEventHandlers","forwardPeerFactoryMessagesToStatusEventHandlers","forwardPeerFactoryMessagesToPeerFactoryRequests","handlePeerFactoriesAdded","handlePeerFactoriesRemoved","forwardActivityWindowMessagesToEventHandlers","disposeRequestHandling","my","exit","mode","activity_types","typesToTrack","initReady","onActivityTypeStatusChange","registerActivityType","activityTypeName","toActivityPeerConfig","windowDefinition","activityType","invokeCallbacks","unregisterActivityType","onWindowTypeStatusChange","registerWindowFactory","factory","factories","unregisterWindowFactory","factory_ids","onActivityStatusChange","initiateActivity","initiateMsg","initial_context","isOverrideTypeDefinition","types_override","helpers","wd","sendCreateAndMapResultingMessagesToPromise","initMsg","fullReplace","removedKeys","announceWindow","activityWindowId","registerWindow","independent","shouldSendReady","getAgmInstance","generateWindowGetter","onActivityWindowChange","layout","width","height","cellSize","joinPeer","joinActivity","peer_name","created_id","destroy_peer_id","getAnnouncementInfo","announcementInfo","activityWindowType","activityWindowIndependent","activityWindowName","search","URLSearchParams","searchParams","maybeName","target_id","leaveActivity","getActivityTypes","getWindowTypes","getActivities","getActivityWindows","windowDefinitions","visible","cloneActivity","cloneOptions","into","merge","newActivityInfo","onActivitiesAttached","onActivitiesDetached","onActivityAttachedDescriptorsRefreshed","getAttachedDescriptors","getRandomRequestId","forwardAddedAndRemovedMessagesToEventHandler","addedMessageType","removedMessageType","mapper","getGetEntityEvent","isAdded","forwardMessageToEventHandler","getEntityEvent","ent","h","initiatedMessageType","initiatedMessageFilter","createdMessageFilter","cancelledMessageType","cancelledMessageFilter","createdMessageToPromiseResolution","listenForRecreates","reqId","resolveCreatedPromise","rejectCreatedPromise","createdPromise","initiatedSubscription","createdSubscription","cancelledSubscription","errorSubscription","initiatedMessageAck","dropSubscriptions","dropSubscription","msg4","recreated","msg1","msg2","msg3","toReturn","peerFactoryIdAndOwnerIdToWindowType","factoryId","peerType","subscribeToContext","unsubscribeContext","activityCreatedMessage","participants","createdMessage","peer_factory","gateway_token","joinedMessage","joinedId","joined_id","joinedType","joined_type","joinedName","joined_name","left_id","list","ActivityMy","_myAttached","_myDetached","_myAttachedTo","_myDetachedFrom","_myActivityFrameColorChanged","_myActivityJoinedCallbacks","_myActivityRemovedCallbacks","_myContextUpdateCallbacks","_m","am","_subscribeMyContextChanged","_subscribeMyWindowEvent","_subscribeActivitiesAttached","_subscribeActivitiesDetached","onWindowFrameColorChanged","_subscribeWindowFrameColorChanged","_w","announcedWindows","myWin","onActivityLeft","onActivityDetached","onAttachedToActivity","onDetachedFromActivity","onFrameColorChanged","myActivity","_notifyMyContextChanged","_notifyMyWindowEvent","callbackStore","_notifyAttached","_notifyDetached","_notifyAttachedTo","_notifyDetachedFrom","detached","oldAct","ReadyMarker","signalsToWait","_signals","_callbacks","setCallback","isSet","isError","_error","signal","getError","EntityObservableCollection","processNew","_items","_listeners","_processNew","addOne","items","internalEntity","_updateInternalCollections","_notifyListeners","getByName","getOrWait","entityAddedHandler","listener","entityAsAny","isActivityDestroy","isWindowClose","oldEntity","ActivityManager","usingHc","_announcedWindows","v","bridge","autoAnnounce","_attachedCallbacks","_detachedCallbacks","_frameColorChangesCallbacks","_windowHandlers","_activityTypes","_grabEntity","_windowTypes","_activities","_dataReadyMarker","_descriptorsMarker","_readyMarker","dataErr","errCatch","refreshDescriptors","_handleActivitiesAttached","_handleActivitiesDetached","_handleActivityDescriptorsRefreshed","_handleWindowFrameColorChanged","_subscribeForData","aw","_getInitialData","ownerWindowType","helperWindowTypes","ownerDefinition","helperDefinitions","relativeTo","relativeDirection","windowStyleAttributes","actId","subscribeActivityTypeEvents","at","factoryMethod","util.isObject","getName","predicate","util.some","windowEventHandler","unsubscribeWindowEvents","subscribeWindowTypeEvents","wt","wrappingHandler","found","windowTypeOrConfiguration","relativeToWindow","invalidKeys","filteredWindowTypeOrConfiguration","wid","relativeWindowTypes","stackedWindow","tasks","removedKey","descriptors","stateWrapped","u","subscribeActivityFrameColorChanged","ac","descriptorAsObjectFromAPI","oldActivityId","newActivityId","ActivityManagementAPI","_my","activityTypes","_getActivityTypesWrapper","_getWindowTypesWrapper","registerFactory","unregisterFactory","announce","instances","onAttached","onActivityFrameColorChanged","ActivityAPI","_mgr","aware","inActivity","getAvailableFrameColors","ActivityModule","checkIsUsingGW3Implementation","_api","logLevel","_isUsingHCImplementation","gdMajorVersion","_isUsingGW3Implementation","activityManager","disableAutoAnnounce","My","_readyPromise","isUsingHCImplementation","isUsingGW3Implementation","GetFunctionalEntitlementMethodName","CanIMethodName","OnEventMethodName","GetApplicationsMethodName","objectValues","objectClone","validate","throwErrors","ApplicationImpl","_appManager","_configuration","onInstanceStarted","onInstanceStopped","onAppRemoved","app","onAppChanged","onAppAvailable","_props","IsReady","onAppUnavailable","Title","Version","autoStart","AutoStart","isShell","IsShell","caption","Caption","hidden","IsHidden","container","ApplicationName","ActivityWindowType","windowSettings","Arguments","allowMultiple","AllowMultiple","available","icon","Icon","iconURL","IconUrl","sortOrder","SortOrder","userProperties","UserProperties","keywords","Keywords","isActivity","Type","Mode","styleAttributes","WindowStyleAttributes","searchFor","modeIndex","startModeIndex","stopModeIndex","style","substr","getConfiguration","AgmNames.GetApplicationsMethodName","v2","apps","applications","updateFromProps","Name","start","waitForAGMInstance","awaitInterop","_c","waitForAGMReady","startTimeout","waitForApplicationInstance","waitFunc","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","_e","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onAgmReady","onStopped","getWindow","onWindowAdded","updateAgmInstanceFromProps","agmInstances","idToResolve","handleInstanceStopped","getContext","startedBy","AppManagerImpl","_gdMajorVersion","_apps","_instances","getConfigurations","getMyInstance","getMyApplication","handleSnapshotAppsAdded","newApps","currentApps","handleAppRemoved","handleAppAdded","handleSnapshotInstanceStarted","newInstances","currentInstances","_getAppId","_updateAppFromProps","handleAppUpdated","handleAppReady","_getAppOrThrow","_getInstanceId","_getInstanceAppName","_updateInstanceFromProps","_getInstanceOrThrow","_matchInstance","handleInstanceAgmServerReady","handleInstanceStartFailed","handleInstanceUpdated","onInstanceStartFailed","onInstanceUpdated","onAppAdded","_getInstanceByIdAndName","EntitlementsImpl","_isMethodRegistered","handleBranchModified","handleBranchesModified","getRegion","_agmInvoke","Region","getBranches","Branches","getCurrentBranch","Branch","setRegion","ResultMessage","setCurrentBranch","currentUser","getFunctionalEntitlement","funct","AgmNames.GetFunctionalEntitlementMethodName","Entitlement","getFunctionalEntitlementBranch","canI","AgmNames.CanIMethodName","Result","canIBranch","onBranchesChanged","onBranchChanged","onShuttingDown","registerMethod","restart","transformFunction","prevent","r","InMemoryStoreCommandMethodName","InMemoryStore","import","createAppDef","details","AppManagerFactory","START_ONLY","SKIP_ICONS","appManager","entitlements","skipIcon","snapshot","skipIcons","initiated","resolveFunc","rejectFunc","resultPromise","AgmNames.OnEventMethodName","streamData","events","onApplicationAddedEventArgs","isSnapshot","onApplicationStartedEventArgs","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","myInstance","myApplication","inMemory","getGDMajorVersion","glueDesktop","ver","callbackifyPromise","fail","getMonitor","displays","workingAreaWidth","workingAreaHeight","monitor","totalOverlap","calculateTotalOverlap","getDisplayCenterOfScreen","currentDisplay","primaryDisplay","physicalWidth","scaleFactor","physicalHeight","physicalDisplayLeft","workArea","physicalDisplayTop","physicalDisplayWidth","physicalDisplayHeight","physicalHOffset","max","physicalVOffset","centeredPhysicalLeft","centeredPhysicalTop","generateId","r1","r2","r1x","r1y","r1xMax","r1yMax","r2x","r2y","r2xMax","r2yMax","min","T42JumpListAction","jumpListManager","_groupActionCallbacks","_registered","_executor","registerCallbackMethod","setEnabled","updateJumpList","createCategory","actions","validateActions","category","toUpdateActions","removeCategory","manageActionCallback","createActions","categoryTitle","removeActions","getActions","catgoryTitle","currentCategory","getJumpListSettings","categories","actionCallback","getActionCallback","callbackId","singleInstanceTitle","multiInstanceTitle","getJumpList","updateAction","groupCallbacksKey","categoryActionCallbacks","accCal","delete","callbackAction","cal","windowStore","waitForTimeoutInMilliseconds","_pendingWindows","_pendingWindowsStates","CallbackFactory","getIfReady","remote","urlChanged","setReadyState","targetWindowState","markReadyToShow","setUrlChangedState","setCompositionChangedState","windowAvailableOnURLChanged","waitFor","unReady","unRemoved","cleanup","onReadyWindow","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","windowFactory","appManagerGetter","displayAPIGetter","channelsAPIGetter","getChannels","channels","_mode","_bounds","_url","_frameColor","_focus","_neighbours","neighbours","_groupId","groupId","_isGroupHeaderVisible","isGroupHeaderVisible","_isTabHeaderVisible","isTabHeaderVisible","_isGroupHibernated","isGroupHibernated","_isGroupVisible","isGroupVisible","_isTabSelected","isTabSelected","_settings","_applicationName","_group","_isVisible","_isSticky","isSticky","_isCollapsed","isCollapsed","_windowState","_tabGroupId","tabGroupId","_tabIndex","tabIndex","_frameId","frameId","_isLocked","isLocked","_allowWorkspaceDrop","allowWorkspaceDrop","_isPinned","isPinned","_frameButtons","frameButtons","_zoomFactor","zoomFactor","_placementSettings","placementSettings","_jumpList","moveResize","utils","resultWindow","toBeVisible","onGroupChanged","onEventCore","replayArguments","getNeighboursByDirection","direction","winId","getApplicationName","_APPLICATION_NAME","_t42","getWindowInfo","hostInstance","agmInstance","b1","b2","minHeight","maxHeight","minWidth","maxWidth","isFocused","opened","group","topNeighbours","leftNeighbours","rightNeighbours","bottomNeighbours","screen","monitors","jumpList","maximize","restore","minimize","maximizeRestore","collapse","expand","toggleCollapse","setTitle","newTitle","setStyle","styleAsAny","util.isNumber","setOnTop","onTop","resetButtons","buttons","getButtons","setSizeConstraints","constraints","getSizeConstraints","navigate","newUrl","optionsOrCallback","util.isNullOrWhiteSpace","addFrameButton","buttonInfo","buttonId","imageBase64","removeFrameButton","show","hide","center","display","validateCenterArguments","cbOrOptions","snap","autoAlign","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","errMsg","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","dock","executeCode","getChannel","getWindowsWithChannels","channel","startDrag","option","showDialog","dialogOptions","timerDuration","showTimer","onClose","onUrlChanged","onTitleChanged","onFrameButtonAdded","onFrameButtonRemoved","onFrameButtonClicked","onCollapsed","onExpanded","onMinimized","onMaximized","onNormal","onVisibilityChanged","onContextUpdated","onLockingChanged","onBoundsChanged","onFocusChanged","onStickyChanged","onWindowAttached","onWindowDetached","onTabSelectionChanged","onTabHeaderVisibilityChanged","onClosing","onRefreshing","onZoomFactorChanged","onPlacementSettingsChanged","onNeighboursChanged","onDockingChanged","onNavigating","onChannelRestrictionsChanged","tabs","allWindows","w1","w2","MIN_SAFE_INTEGER","getAllTabs","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","joinChannel","leaveChannel","Events","handleUpdate","handleWindowClose","handleWindowChangeState","finished","handleTitleChanged","finally","handleVisibilityChanged","handleUrlChanged","handleWindowSettingsChanged","handleContextUpdated","handleFrameIsLockedChanged","handleBoundsChanged","handleFocusChanged","handleFrameButtonAdded","frameButton","buttonObj","btn","handleFrameButtonRemoved","frameButtonId","button","handleFrameButtonClicked","handleFrameColorChanged","handleFrameAttached","handleFrameSelectionChanged","newWindow","prevWindow","selectedWindow","previousWindow","handleCompositionChanged","neighbors","handleAllowWorkspaceDropChanged","handleIsPinnedChanged","handleGroupHeaderVisibilityChanged","handleTabHeaderVisibilityChanged","handleGroupChanged","handleAttached","newTabGroupId","newFrameId","tabHeaderVisible","winsToBeNotified","handleWindowAttached","handleDetached","handleWindowDetached","handleZoomFactorChanged","handleIsStickyChanged","handlePlacementSettingsChanged","displayAPI","handleDockingChanged","docked","position","claimScreenArea","handleChannelRestrictionsChanged","GroupCreationArgs","getWindowsByTabGroupId","isEmpty","GroupMethodName","WndMethodName","_finished","unsubCallbacks","agmTarget","setConfiguration","handleEvent","finishedResolve","closed","urlLoadOptions","stylePromises","wait","tabTooltip","tabToolTip","toolTip","tabTitle","allowClose","allowCollapse","allowLockUnlock","allowMaximize","allowMinimize","buttonsConfig","windowToPin","pinnedWindow","versionNum","rej","resolveImmediately","areBoundsEqual","unsubscribeBoundsChanged","resolveTimeout","unFocusChanged","unClosed","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","showPopupCore","executeGroup","optionsCopy","horizontalOffset","verticalOffset","fullOptions","reformatFlydownOptions","zoneIds","zones","z","flydownSize","cancel","targetId","clearFlydownArea","autoArrange","displayId","handleFlydownBoundsRequested","callbackData","zoneId","flydownId","flydownWindowBounds","flydownWindowId","responses","defaultResponse","handleOnEventRequested","prevented","preventArgs","pArgs","captureGroup","groupWindowIds","filePath","enableDownloadBar","silent","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_waitTimeout","_windowId","_appManagerGetter","_displayAPIGetter","_channelsAPIGetter","respondToEvent","streamResolve","streamReject","withConfig","updateWindow","copyOptions","windowState","tabAttached","tabDetached","onEvent","myGroup","onCompositionChanged","onGroupHeaderVisibilityChanged","onGroupVisibilityChanged","onGroupStateChanged","onWindowGotFocus","onWindowLostFocus","onWindowsAutoArrangeChanged","windowInfo","readyResolve","extendedStreamEvent","getExtendedStreamEvent","existingWindow","mapToWindowConstructorOptions","mapToGroupCreationArgs","windowInfoCreatedEvent","windowObjectAndEvents","theWindow","theWindowEvents","windowInfoBoundsChangedEvent","windowInfoUrlChangedEvent","windowInfoTitleChanged","windowInfoIsStickyChangedChanged","windowInfoCompositionChanged","groupHeaderVisible","windowInfoFocusChanged","focusChanged","oldTabGroupId","newWindowId","prevWindowId","windowObjAndEvents","isActiveTab","jumpListOptions","streamEvent","charAt","toUpperCase","groupFactory","callbackRegistry","_windowsId","_isHibernatedFlag","groupObject","_mapToWindowObjects","winObjects","windowObject","_mapToWindowObject","mappedWindows","isHeaderVisible","isHibernated","showHeader","hideHeader","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","store","layouts","removeWhere","condition","removeAll","where","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","LayoutsFactory","acsStream","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","T42_ANNOUNCE_METHOD_NAME","switchChannel","swId","newChannel","getRestrictionsByWindow","addOrRemoveChannel","CONTEXT_PREFIX","LATEST_FDC3_TYPE","SharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","ChannelsImpl","shared","subsKey","changedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","subscribeForChannelRestrictionsChange","initialChannel","joinNoSelectorSwitch","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","validatePathArgs","channelNames","getMy","joinCore","leaveCore","leaveNoSelectorSwitch","changed","getWindowsOnChannel","er","restrict","restriction","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","handleRestrictionsChanged","changeSelector","doesChannelExist","channelExistsPromise","intervalId","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","parsedType","latestTypePropName","fdc3Data","latestFDC3Type","sharedContexts","setupInteropPromise","interopLib","isSupported","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","getLibConfig","defaultMode","trueMode","getModeAsString","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","toAPI","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","methodsRegistered","NOTIFICATIONS_CONFIGURE_METHOD_NAME","methodNameRoot","notifications","subscribedForNotifications","subscribedCounterStream","subscriptionsCountForNotifications","subscriptionsCountForCounter","_panel","onStreamEventCore","_panelAPI","subscribeInternalEvents","maxActions","panel","raise","bunchOfPromises","handleNotificationEvent","notification","severity","glueRoutingDetailMethodName","sourceId","publishExtraEvents","clickInterop","handleActions","handleOptions","g42notification","invocationResult","handleNotificationErrorEvent","setFilter","getFilter","enable","enableToasts","toastExpiry","sourceFilter","allowed","blocked","toasts","_f","stackBy","placement","_g","_h","statesVersion2","attribute","stringValue","onRaised","onStateChanged","onConfigurationChanged","closeStreamSubscriptionIfNoNeeded","onCounterChanged","subscribeForCounterStream","closeStreamCounterSubscriptionIfNoNeeded","onDataChanged","clearAll","clearOld","clearMany","validateNotificationsArr","click","snooze","snoozeMany","validateState","setStates","attributes","dataAsString","panelExpiry","validActions","g42notificationId","g42action","g42interopMethod","g42interopTarget","g42interopArguments","glueAction","sendDeltaOnly","subscriptionForNotifications","handleData","subscriptionForCounter","count","handleOnClosed","handleOnShow","handleItemsData","deltas","handleDeltas","allApplications","dataAttribute","getNotification","gnsNotificationArgs","getGnsNotificationArgs","notificationId","handleNotificationEventCore","handleNotificationActionEvent","notificationActionPayload","handleNotificationClickEvent","onaction","onclick","sourceNotificationId","getBackwardGnsNotificationArgs","ThemesImpl","isSubscribed","getMethodName","getCurrent","select","theme","setMethodName","sharedContextName","getThemesMethodName","setThemesMethodName","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","PromiseWrap","promiseActive","validateResolverResponse","responseObj","intent","isValid","userSettings","preserveChoice","compulsoryKeysExist","ok","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","checkIfIntentsResolverIsEnabled","intentFilter","intents","contextType","ctToLower","contextTypes","ct","resultType","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","intentName","appWithIntents","appIntent","appDefIntent","windowsIdToTitle","instanceTitle","addIntentListener","registerPromise","intentFlag","buildInteropMethodName","unsubscribeIntent","filterHandlers","handlerFilter","openResolver","applicationNames","ctx","validateHandlerFilter","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","filteredIntentsWithHandlers","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","invokeStartApp","invokeOptions","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","startedByIntentAPI","intentPromise","gdWin","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","prevPrefs","prevIntentsPrefs","prefsToUpdate","Prefs","interopMethodRegistered","verifyDataObject","setFor","verifyApp","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","Cookies","cookies","cookie","verifyCookieObject","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","layoutsConfig","lay","hotkeysAPI","displaysLogger","intentsAPI","notificationsAPI","themesAPI","themes","currentLog","glueFactoryLog","glueApi","CoreFactory","libraries","calls","whatToExpose","CreateGlue","shouldSetToWindow","autoInjected","IODesktop","Glue","IOBrowser","GlueCore"],"mappings":"sQAAA,IAAIA,EAAc,CACdC,OAAQ,EACRC,OAAQ,EACRC,UAAW,EACXC,OAAQ,GAGZ,SAASC,EAAqBC,GAC1B,OAAIA,EAAOC,OAASP,EAAYG,UACrB,YAEFG,EAAOC,OAASP,EAAYE,OAC1B,SAEFI,EAAOC,OAASP,EAAYC,OAC1B,SAEFK,EAAOC,OAASP,EAAYI,OAC1B,SAEJ,SACX,CACA,SAASI,EAAeC,GACpB,OAAIA,EAAMC,cAAgBC,KACf,YAEe,iBAAVF,EACL,SAEe,iBAAVA,EACL,SAEe,iBAAVA,EACL,SAGA,QAEf,CACA,SAASG,EAAgBN,GACrB,MAAMO,EAAoB,CAAA,EACpBN,EAAOF,EAAqBC,GAClC,GAAa,WAATC,EAAmB,CACnB,MAAMO,EAASC,OAAOC,KAAKV,EAAOG,OAAOQ,QAAO,CAACC,EAAMC,KACnD,MAAMC,EAAYZ,EAAeF,EAAOG,MAAMU,IAC9C,GAAkB,WAAdC,EAAwB,CACxB,MAAMC,EAAYC,EAAsBhB,EAAOG,MAAMU,IACrDD,EAAKC,GAAO,CACRZ,KAAM,SACNgB,YAAa,GACbC,QAAS,CAAE,EACXH,YAEP,MAEGH,EAAKC,GAAO,CACRZ,KAAMa,EACNG,YAAa,GACbC,QAAS,CAAE,GAGnB,OAAON,CAAI,GACZ,CAAE,GACLL,EAAkBQ,UAAYP,CACjC,CAKD,OAJAD,EAAkBY,KAAOC,EAAoBpB,EAAOqB,KAAKC,KAAK,KAAO,IAAMtB,EAAOmB,MAClFZ,EAAkBN,KAAOA,EACzBM,EAAkBU,YAAcjB,EAAOiB,YACvCV,EAAkBW,QAAU,GACrBX,CACX,CACA,SAASS,EAAsBR,GAC3B,OAAOC,OAAOC,KAAKF,GAAQG,QAAO,CAACC,EAAMC,KACrC,MAAMZ,EAAOC,EAAeM,EAAOK,IAgBnC,OAdID,EAAKC,GADI,WAATZ,EACY,CACRA,KAAM,SACNgB,YAAa,GACbC,QAAS,CAAE,EACXH,UAAWC,EAAsBR,EAAOK,KAIhC,CACRZ,OACAgB,YAAa,GACbC,QAAS,CAAE,GAGZN,CAAI,GACZ,CAAE,EACT,CACA,SAASQ,EAAoBD,GACzB,YAAoB,IAATA,GAAwBA,EAAKI,OAAS,GAAiB,MAAZJ,EAAK,GAChD,IAAMA,EAGNA,CAEf,CACA,SAASK,EAAqBxB,GAE1B,MAAa,cADAD,EAAqBC,GAEvBK,KAAKoB,MAGLC,EAAuB1B,EAAOG,MAE7C,CACA,SAASuB,EAAuBlB,GAC5B,MAAsB,iBAAXA,EACAA,EAEJC,OAAOC,KAAKF,GAAQG,QAAO,CAACC,EAAMC,KACrC,MAAMV,EAAQK,EAAOK,GAarB,MAZqB,iBAAVV,GAAsBA,EAAMC,cAAgBC,KACnDO,EAAKC,GAAOa,EAAuBvB,GAE9BA,EAAMC,cAAgBC,KAC3BO,EAAKC,GAAO,IAAIR,KAAKF,GAAOwB,UAEvBxB,EAAMC,cAAgBwB,QAC3BhB,EAAKC,GAAOV,EAAM0B,WAGlBjB,EAAKC,GAAOV,EAETS,CAAI,GACZ,CAAE,EACT,CACA,SAASkB,EAAQC,GACb,OAAOA,EAAIpB,QAAO,CAACqB,EAAMC,IACdD,EAAKE,OAAOC,MAAMC,QAAQH,GAAaH,EAAQG,GAAaA,IACpE,GACP,CA8BA,SAASI,EAA6BC,GAClC,MACMC,EAAST,EADSQ,EAAOE,KAAKC,qBAE9BC,EAA+BH,EA/B1BI,MAAK,CAACC,EAAGC,IACXD,EAAEE,MAGFD,EAAEC,MAGAD,EAAEC,MAAQF,EAAEE,OAFP,EAHD,IAMZ,GAwBH,MAAMC,EAtBV,SAA8BhB,GAC1B,IAAIiB,EAAM,GAUV,OATAjB,EAAIkB,SAAQ,CAACC,EAAGC,EAAKP,KACjB,MAAMvB,EAAO6B,EAAE7B,KAAKC,KAAK,KACrB6B,IAAQP,EAAErB,OAAS,EACnByB,GAAO3B,EAAO,IAAM6B,EAAE/B,KAAO,KAAO+B,EAAEjC,YAGtC+B,GAAO3B,EAAO,IAAM6B,EAAE/B,KAAO,KAAO+B,EAAEjC,YAAc,GACvD,IAED+B,EAAIzB,OAAS,IACNyB,EAAII,MAAM,EAAG,KAAO,MAGpBJ,CAEf,CAK0BK,CAAqBd,GAC3C,MAAO,CACHtB,YAAa8B,EACb5C,MAAOuC,EAAaI,MAE5B,CAgLA,IAAIQ,EACU,CAACC,EAAYC,EAAQC,KAC3B,GAAmB,OAAfF,GAA6C,iBAAfA,EAC9B,MAAM,IAAIG,MAAM,sBAEpB,GAAe,OAAXF,GAAqC,iBAAXA,EAC1B,MAAM,IAAIE,MAAM,kBAEpB,GAAkB,OAAdD,GAA2C,iBAAdA,EAC7B,MAAM,IAAIC,MAAM,oBACnB,EAIT,MAAMC,EACFJ,WACAjB,OACAmB,UACAtD,MACAF,KACAoB,KAAO,GACPF,KACAF,YACA,QAAI2C,GACA,OAAOC,KAAKvB,QAAQsB,IACvB,CACD,MAAIE,GAAO,MAAO,GAAGD,KAAKvB,OAAOjB,QAAQF,MAAS,CAClD,WAAAf,CAAYmD,EAAYjB,EAAQmB,EAAWtD,EAAOF,GAC9C4D,KAAKN,WAAaA,EAClBM,KAAKvB,OAASA,EACduB,KAAKJ,UAAYA,EACjBI,KAAK1D,MAAQA,EACb0D,KAAK5D,KAAOA,EACZqD,EAAiBC,EAAYjB,EAAQmB,GACrCI,KAAKxC,KAAOiB,EAAOjB,KAAK+B,MAAM,GAC9BS,KAAKxC,KAAK0C,KAAKzB,EAAOnB,MACtB0C,KAAK1C,KAAOoC,EAAWpC,KACvB0C,KAAK5C,YAAcsC,EAAWtC,YAC9BwC,EAAUO,aAAaH,KAC1B,CACD,MAAAI,CAAOC,GAEH,OADAL,KAAK1D,MAAQ+D,EACNL,KAAKJ,UAAUU,aAAaN,KACtC,EAGL,MAAMO,UAAqBT,EACvB,WAAAvD,CAAYmD,EAAYjB,EAAQmB,EAAWtD,GACvCkE,MAAMd,EAAYjB,EAAQmB,EAAWtD,EAAOT,EAAYE,OAC3D,CACD,WAAA0E,CAAYC,GACRV,KAAKI,OAAOJ,KAAK1D,MAAQoE,EAC5B,CACD,SAAAC,GACIX,KAAKS,YAAY,EACpB,CACD,SAAAG,GACIZ,KAAKS,aAAa,EACrB,CACD,WAAAI,CAAYH,GACRV,KAAKS,aAAmB,EAAPC,EACpB,EAGL,MAAMI,UAAqBhB,EACvB,WAAAvD,CAAYmD,EAAYjB,EAAQmB,EAAWtD,GACvCkE,MAAMd,EAAYjB,EAAQmB,EAAWtD,EAAOT,EAAYI,OAC3D,CACD,MAAAmE,CAAOC,GAEH,OADAL,KAAKe,YAAYV,GACVL,KAAKJ,UAAUU,aAAaN,KACtC,CACD,WAAAe,CAAYpE,GACR,OAAOC,OAAOC,KAAKmD,KAAK1D,OAAO8C,SAAS4B,SACX,IAAdrE,EAAOqE,KACdhB,KAAK1D,MAAM0E,GAAKrE,EAAOqE,GAC1B,GAER,EAGL,MAAMC,UAAqBnB,EACvB,WAAAvD,CAAYmD,EAAYjB,EAAQmB,EAAWtD,GACvCkE,MAAMd,EAAYjB,EAAQmB,EAAWtD,EAAOT,EAAYC,OAC3D,EAGL,MAAMoF,UAAwBpB,EAC1B,WAAAvD,CAAYmD,EAAYjB,EAAQmB,EAAWtD,GACvCkE,MAAMd,EAAYjB,EAAQmB,EAAWtD,EAAOT,EAAYG,UAC3D,CACD,GAAA4B,GACIoC,KAAKI,OAAO,IAAI5D,KACnB,EAGL,SAASiC,EAAOnB,EAAMyC,EAAMoB,EAAUxB,EAAQvC,GAC1C,IAAK2C,EACD,MAAM,IAAIF,MAAM,0BAEpB,IAAKsB,EACD,MAAM,IAAItB,MAAM,yBAEpB,MAAMuB,EAAaD,EACbE,EAAQ/D,EACRgE,EAAelE,GAAe,GAC9BmE,EAAQxB,EACRyB,EAAU7B,EACV8B,EA2DN,SAASC,EAAWC,GAChB,IAAKA,IAAmBA,EAAehC,OACnC,MAAO,GAEX,MAAMnC,EAAOkE,EAAWC,EAAehC,QAEvC,OADAnC,EAAK0C,KAAKyB,EAAerE,MAClBE,CACV,CAlEakE,CAAW/B,GACzB,IAAIiC,EAAS,CAAA,EACb,MAAM3B,GAiEwB4B,EAjEG,MAiETrE,EAjEEiE,IAkELjE,EAAKE,OAAS,EAAKF,EAAKC,KAAKoE,GAAa,IAlEvBvE,GAiExC,IAAwBE,EAAMqE,EAhE9B,MAAMlD,EAAOoB,EAAKpB,KACZmD,EAAc,GACdC,EAAW,GA6BjB,SAASC,EAAmBC,EAAcC,EAAc5F,EAAO6D,GAC3D,IAAIgC,EAAY,CAAE7E,KAAM,IAEpB6E,EADwB,iBAAjBF,EACK,CAAE3E,KAAM2E,GAGRA,EAEhB,MAAMG,EAAWL,EAASM,QAAQC,GAAmBA,EAAehF,OAAS6E,EAAU7E,OACvF,GAAI8E,EAAS1E,OAAS,EAAG,CACrB,MAAM6E,EAAWH,EAAS,GAC1B,GAAIG,EAASnG,OAAS8F,EAClB,MAAM,IAAIrC,MAAM,kBAAkBsC,EAAU7E,gDAOhD,YALqB,IAAVhB,GACPiG,EACKnC,OAAO9D,GACPkG,OAAM,SAERD,CACV,CACD,MAAMpG,EAASgE,EAAagC,GAE5B,OADAJ,EAAS7B,KAAK/D,GACPA,CACV,CA8BD,MAAMsG,EAAK,CACP,QAAInF,GACA,OAAO+D,CACV,EACD,eAAIjE,GACA,OAAOkE,CACV,EACD,QAAIvB,GACA,OAAOwB,CACV,EACD,UAAI5B,GACA,OAAO6B,CACV,EACDhE,KAAMiE,EACNxB,KACAtB,OACA,cAAI+D,GACA,OAAOZ,CACV,EACD,WAAIa,GACA,OAAOZ,CACV,EACDa,UAxGJ,SAAmBC,EAAYC,GAC3B,IAAKD,GAAoC,IAAtBA,EAAWnF,OAC1B,MAAM,IAAImC,MAAM,oBAEpB,MAAMkD,EAAQjB,EAAYO,QAAQW,GAAMA,EAAE1F,OAASuF,IACnD,GAAIE,EAAMrF,OAAS,EACf,OAAOqF,EAAM,GAEjB,MAAME,EAAUxE,EAAOoE,EAAYtB,EAAOH,EAAYqB,EAAIK,GAE1D,OADAhB,EAAY5B,KAAK+C,GACVA,CACV,EA8FGC,SAAU,IACCtB,EAEXuB,SAhGJ,SAAkBlE,EAAOmE,GACrBxB,EAAS,CAAE3C,QAAO7B,YAAagG,GAC/BhC,EAAWiC,aAAaZ,EAAIb,EAC/B,EA8FG0B,aA7FJ,SAAsB5D,EAAYpD,GAC9B,OAAO0F,EAAmBtC,EAAY7D,EAAYC,OAAQQ,GAAQ6F,GAAc,IAAIlB,EAAakB,EAAWM,EAAIrB,EAAY9E,IAC/H,EA4FGiH,gBArFJ,SAAyB7D,EAAYpD,GACjC,OAAO0F,EAAmBtC,EAAY7D,EAAYG,UAAWM,GAAQ6F,GAAc,IAAIjB,EAAgBiB,EAAWM,EAAIrB,EAAY9E,IACrI,EAoFGkH,aAzFJ,SAAsB9D,EAAYpD,GAC9B,OAAO0F,EAAmBtC,EAAY7D,EAAYI,OAAQK,GAAQ6F,GAAc,IAAIrB,EAAaqB,EAAWM,EAAIrB,EAAY9E,IAC/H,EAwFGmH,aA7FJ,SAAsB/D,EAAYpD,GAC9B,OAAO0F,EAAmBtC,EAAY7D,EAAYE,OAAQO,GAAQ6F,GAAc,IAAI5B,EAAa4B,EAAWM,EAAIrB,EAAY9E,IAC/H,EA4FGsC,kBAjDJ,WACI,MAAM8E,EAAW,GAejB,OAdI9G,OAAOC,KAAK+E,GAAQlE,OAAS,GAC7BgG,EAASxD,KAAK,CACV5C,KAAM+D,EACN7D,KAAMiE,EACNxC,MAAO2C,EAAO3C,MACd7B,YAAawE,EAAOxE,cAG5B0E,EAAY1C,SAASuE,IACjB,MAAMC,EAASD,EAAkB/E,oBAC7BgF,EAAOlG,OAAS,GAChBgG,EAASxD,QAAQ0D,EACpB,IAEEF,CACV,GAmCD,OADAtC,EAAWyC,aAAapB,GACjBA,CACX,CAEA,MAAMqB,EACFnF,KACA,WAAApC,CAAYwH,EAAS5C,GACjBA,EAAS6C,KAAKhE,MACdA,KAAKrB,KAAOF,EAAO,GAAIuB,KAAMmB,GAC7BnB,KAAKiE,iBAAiBjE,KAAKrB,KAAMoF,EAAQG,kBAAuCC,IAAxBJ,EAAQG,YACnE,CACD,gBAAAD,CAAiBG,EAAYC,GAIzB,GAHyB,oBAAdC,WACPF,EAAWd,aAAa,YAAagB,UAAUC,WAE/CF,GAAsC,oBAAbG,SAA0B,CACnD,MAAMN,EAAcE,EAAWxB,UAAU,eACnC6B,EAAwBC,IAC1B,IAAKA,EAAEC,OACH,OAEJ,MAAMA,EAASD,EAAEC,OACXC,EAAYD,EAASA,EAAOE,aAAa,UAAY,GAAK,GAChEX,EAAYV,aAAa,mBAAoB,CACzCpH,KAAM,QACN0I,UAAW,IAAItI,KACfmI,OAAQ,CACJC,YACA3E,GAAI0E,EAAO1E,GACX7D,KAAM,IAAMuI,EAAOI,QAAQC,cAAgB,IAC3CC,KAAMN,EAAOM,MAAQ,KAE3B,EAENf,EAAYV,aAAa,OAAQ,CAC7B0B,MAAOV,SAASU,MAChBC,KAAMC,OAAOC,SAASJ,OAEtBT,SAASc,iBACTd,SAASc,iBAAiB,QAASb,GAGnCD,SAASe,YAAY,UAAWd,EAEvC,CACDL,EAAWd,aAAa,aAAa,IAAK9G,MAAQwB,YAClD,MAAMwH,EAAYpB,EAAWd,aAAa,WAAY,IAChDmC,EAAgBrB,EAAWd,aAAa,UAAW,IACzD,GAAsB,oBAAX8B,OAAwB,CAC/B,QAA+B,IAApBA,OAAOC,SAA0B,CACxC,MAAMK,EAAWN,OAAOC,SAASJ,KACjCO,EAAUpF,OAAOsF,EACpB,MAC8B,IAApBN,OAAOO,UACdF,EAAcrF,OAAOgF,OAAOO,SAASC,QAE5C,CACJ,EAGL,MAAMC,EACF,IAAA7B,CAAKjE,GACJ,CACD,YAAA8D,CAAapF,GACT,OAAOqH,QAAQC,SAClB,CACD,YAAA1C,CAAalH,EAAQ8C,GACjB,OAAO6G,QAAQC,SAClB,CACD,YAAA5F,CAAahE,GACT,OAAO2J,QAAQC,SAClB,CACD,YAAAzF,CAAanE,GACT,OAAO2J,QAAQC,SAClB,EAGL,MAAMC,EACFC,IACAC,UAAY,EACZC,sBAAwB,IACxBC,gBAAkB,IAClB3H,OACA,WAAAlC,CAAY0J,EAAKE,EAAuBC,GACpCpG,KAAKiG,IAAMA,EACXjG,KAAKmG,sBAAwBA,GAAyBnG,KAAKmG,sBAC3DnG,KAAKoG,gBAAkBA,GAAmBpG,KAAKoG,gBAC/CpG,KAAKqG,qBACLrG,KAAKvB,OAASuB,KAAKiG,IAAIrD,UAAU,cAAe,oDACnD,CACD,kBAAAyD,GACIC,YAAW,KACPtG,KAAKuG,UACLC,aAAY,KACRxG,KAAKuG,SAAS,GACfvG,KAAKoG,gBAAgB,GACzBpG,KAAKmG,sBACX,CACD,OAAAI,GACI,IACIvG,KAAKyG,gBACLzG,KAAK0G,gBACR,CACD,MACC,CACJ,CACD,aAAAD,GACI,MAAME,EAASvB,OAAOwB,YAAYD,OAClC3G,KAAKvB,OAAO6E,aAAa,SAAUuD,KAAKC,UAAU,CAC9CC,gBAAiBJ,EAAOI,gBACxBC,eAAgBL,EAAOK,iBAE9B,CACD,cAAAN,GACI,MAAMO,EAAa7B,OAAOwB,YAAYM,aACtC,GAAID,EAAWvJ,QAAUsC,KAAKkG,UAC1B,OAEJlG,KAAKkG,UAAYe,EAAWvJ,OAC5B,MAAMyJ,EAAkBF,EAAWG,KAAKC,GAAMA,EAAEC,WAChDtH,KAAKvB,OAAO6E,aAAa,UAAWuD,KAAKC,UAAUK,GACtD,EAGL,IAAIxE,EAAWoB,IACX,IAAI5C,EAKAA,EAJC4C,EAAQwD,YAA4C,iBAAvBxD,EAAQwD,WAjhB9C,SAAcA,EAAYC,GACtB,IAAKD,GAAoC,iBAAfA,EACtB,MAAM,IAAI1H,MAAM,oCAEpB,IAAI4H,EACAC,EACJ,MA0CMC,EAAc5H,IAChB6H,EAAa7H,EAAKpB,KAAK,EAErBiJ,EAAgBnJ,IAClBoF,EAAapF,GACbA,EAAOkE,QAAQvD,SAASC,IACpBc,EAAad,EAAE,IAEnBZ,EAAOiE,WAAWtD,SAASyI,IACvBD,EAAaC,EAAG,GAClB,EAEAhE,EAAeiE,MAAOrJ,IACxB,QAAsB0F,IAAlB1F,EAAOkB,OACP,aAEE8H,EACN,MAgBMM,EAAmB,CACrB3L,KAAM,SACNuG,QAAS,CAlBE,CACXrF,KAAMC,EAAoBkB,EAAOjB,KAAKC,KAAK,KAAO,IAAMgB,EAAOnB,KAAO,UACtElB,KAAM,SACNc,UAAW,CACP8K,YAAa,CACT5L,KAAM,SACNgB,YAAa,IAEjB6K,MAAO,CACH7L,KAAM,SACNgB,YAAa,KAGrBA,YAAa,eACbC,QAAS,CAAE,KAMfqK,EAAQQ,KAAKH,EAAiB,EA+B5B5H,EAAe2H,MAAO3L,IACxB,MAAMgM,EAAcC,EAAYjM,SAC1BsL,EACN,MACMM,EAAmB,CACrB3L,KAAM,SACNuG,QAAS,CAHHlG,EAAgB0L,KAK1BT,EAAQQ,KAAKH,QACoB,IAAtBI,EAAY7L,OACnB+L,EAAiBF,EACpB,EAOCE,EAAoBlM,IACtB,GAAImM,IAAa,CACb,MAAMhM,EAAQqB,EAAqBxB,GAC7BoM,EAAoB,CACtBnM,KAAM,UACNO,OAAQ,CAAC,CACDW,KAAMC,EAAoBpB,EAAOqB,KAAKC,KAAK,KAAO,IAAMtB,EAAOmB,MAC/DhB,QACAwI,UAAWtI,KAAKoB,SAG5B,OAAO8J,EAAQc,kBAAkBD,EACpC,CACD,OAAOzC,QAAQC,SAAS,EAEtBqC,EAAejM,IACjB,MAAMgM,EAAc,IAAKhM,GAIzB,MAH4B,iBAAjBA,EAAOG,OAAuC,OAAjBH,EAAOG,QAC3C6L,EAAY7L,MAAQ,IAAKH,EAAOG,QAE7B6L,CAAW,EAEhBG,EAAY,KACd,IAEI,OADad,EAAOiB,iBAAoB,MAAM,KAEjD,CACD,MACI,OAAO,CACV,GAEL,MAAO,CACHzE,KAhKUjE,IACV,IAAI2I,EACJjB,EAAc,IAAI3B,SAASC,IACvB2C,EAAsB3C,CAAO,IAEjC2B,EAAUH,EAAWoB,OAAO,WAC5BjB,EAAQkB,UAAUC,KACTA,GAAaH,IACdA,IACAA,OAAsBvE,GAE1B,MAgBM2E,EAAuB,CACzB1M,KAAM,SACNuG,QAAS,CAlBW,CACpBrF,KAAM,SACNlB,KAAM,SACNc,UAAW,CACP8K,YAAa,CACT5L,KAAM,SACNgB,YAAa,IAEjB6K,MAAO,CACH7L,KAAM,SACNgB,YAAa,KAGrBA,YAAa,eACbC,QAAS,CAAE,KAMfqK,EAAQQ,KAAKY,GACTD,GACAlB,EAAW5H,EACd,IAEL2H,EAAQjK,KAAK,CACTgB,OAAQ+I,EAAO/I,OACfsK,QAASvB,EAAOuB,QAChBC,SAAUxB,EAAOwB,UACnB,EAyHFnF,eACAR,aAjFiByE,MAAOrJ,EAAQQ,WAC1BwI,EACN,MAAMwB,EAAuB,CACzB7M,KAAM,UACNO,OAAQ,CAAC,CACDW,KAAMC,EAAoBkB,EAAOjB,KAAKC,KAAK,KAAO,IAAMgB,EAAOnB,KAAO,UACtEhB,MAAO,CACH0L,YAAa/I,EAAM7B,YACnB6K,MAAOhJ,EAAMA,OAEjB6F,UAAWtI,KAAKoB,SAG5B8J,EAAQQ,KAAKe,GACb,MAAMC,EAAW1K,EAA6BC,GACxC0K,EAAa,CACf/M,KAAM,UACNgN,QAAS7B,EAAW8B,OACpB1M,OAAQ,CAAC,CACDW,KAAM,SACNhB,MAAO,CACH0L,YAAakB,EAAS9L,YACtB6K,MAAOiB,EAAS5M,OAEpBwI,UAAWtI,KAAKoB,SAG5B8J,EAAQQ,KAAKiB,EAAW,EAuDxBhJ,eACAG,aAzCiBwH,MAAO3L,IACxB,MAAMgM,EAAcC,EAAYjM,SAC1BsL,EACNY,EAAiBF,EAAY,EAwCrC,CAyWmBmB,CAAIvF,EAAQwD,WAAYxD,GAHxB,IAAI8B,EAMnB,IAAIzB,EADS,IAAIN,EAAWC,EAAS5C,GACfxC,KACjBoF,EAAQwF,uBACTnF,EAAaA,EAAWxB,UAAU,QAEtC,MAAMqD,EAgBV,SAAuBxH,GACnB,MAAM+K,EAAkB/K,EAAOmE,UAAU,aACnC6G,EAAM,CACRnM,KAAM,YAEV,IAAIoM,EACJ,MAAMC,EAAoB,CAACrM,EAAMsM,EAAQC,KACrC,QAAoB,IAATvM,GAAiC,KAATA,EAC/B,MAAM,IAAIuC,MAAM,qBAEf,QAAsB,IAAX+J,GAAqC,KAAXA,EACtC,MAAM,IAAI/J,MAAM,uBAEf,QAAuB,IAAZgK,GAAuC,KAAZA,EACvC,MAAM,IAAIhK,MAAM,wBAEf6J,EAIDA,EAActJ,OAAO,CACjB9C,OACAsM,SACAC,YANJH,EAAgBF,EAAgBhG,aAAaiG,EAAK,CAAEnM,OAAMsM,SAAQC,WAQrE,EAGL,OADApL,EAAOiL,cAAgBC,EAChBlL,CACX,CA7CgBqL,CAAc1F,GAE1B,OAEJ,SAAkB6B,EAAKuB,GACnB,GAAsB,oBAAXpC,OACP,OAEJ,MAAM2E,EAAa3E,QAAQO,UAAUhD,SAASqH,uBAC1CD,IACAvC,EAASuC,GAETvC,GAAQyC,SACR,IAAIjE,EAAYC,EAAKuB,EAAOrB,sBAAuBqB,EAAOpB,gBAElE,CAdI8D,CAASjE,EAAKlC,EAAQiG,wBACf/D,CAAG,EA6Cd,IAAIkE,EAAuC,oBAAfC,WAA6BA,WAA+B,oBAAXhF,OAAyBA,OAA2B,oBAAXiF,OAAyBA,OAAyB,oBAATC,KAAuBA,KAAO,GAE7L,SAASC,EAAyBC,GACjC,OAAOA,GAAKA,EAAEC,YAAc7N,OAAO8N,UAAUC,eAAeC,KAAKJ,EAAG,WAAaA,EAAW,QAAIA,CACjG,CAEA,SAASK,EAAe9G,GACpB,GAAIA,GAAWA,EAAQ+G,eACiB,mBAA1B/G,EAAQ+G,eACW,QAA1B/G,EAAQ+G,eACkB,WAA1B/G,EAAQ+G,eACkB,UAA1B/G,EAAQ+G,cACX,MAAM,IAAIjL,MAAM,mIAA2IkE,EAAQ+G,cAAgB,eAEvL,IAAIC,EAAoBhH,GAA4C,mBAA1BA,EAAQ+G,eAAgC/G,EAAQ+G,cACtFE,EAAY,CAAA,EAqEhB,SAASC,EAAaC,EAAmBlO,GACrC,IAAImO,EAAWD,aAA6BrL,MAAQqL,EAAoB,IAAIrL,MAAMqL,GAClF,GAAIH,EACAA,EAAkBI,OADtB,CAIA,IAAIhM,EAAM,qDAAwDnC,EAAM,aAAgBmO,EAASC,MACjG,GAAIrH,EACA,OAAQA,EAAQ+G,eACZ,IAAK,MACD,OAAOO,QAAQC,MAAMnM,GACzB,IAAK,SACD,OACJ,IAAK,QACD,MAAM,IAAIU,MAAMV,GAG5BkM,QAAQC,MAAMnM,EAZb,CAaJ,CAWD,MAAO,CACHoM,IAlGJ,SAAavO,EAAKwO,EAAUC,GACxB,IAAIC,EAAkBV,EAAUhO,GA0BhC,OAzBK0O,IACDA,EAAkB,GAClBV,EAAUhO,GAAO0O,GAErBA,EAAgBxL,KAAKsL,GACjBC,GACAnF,YAAW,WACPmF,EAAmBrM,SAAQ,SAAUuM,GACjC,IAAIC,EACJ,GAA8B,QAAzBA,EAAKZ,EAAUhO,UAAyB,IAAP4O,OAAgB,EAASA,EAAGC,SAASL,GACvE,IACQlN,MAAMC,QAAQoN,GACdH,EAASM,WAAM3H,EAAWwH,GAG1BH,EAASM,WAAM3H,EAAW,CAACwH,GAElC,CACD,MAAOI,GACHd,EAAac,EAAK/O,EACrB,CAEzB,GACa,GAAE,GAEA,WACH,IAAIgP,EAAYhB,EAAUhO,GACrBgP,IASoB,KANzBA,EAAYA,EAAUlP,QAAO,SAAUmP,EAAKC,EAASC,GAIjD,OAHMD,IAAYV,GAAYS,EAAIvO,SAAWyO,GACzCF,EAAI/L,KAAKgM,GAEND,CACV,GAAE,KACWvO,cACHsN,EAAUhO,GAGjBgO,EAAUhO,GAAOgP,EAEjC,CACK,EAsDGI,QArDJ,SAAiBpP,GAEb,IADA,IAAIqP,EAAe,GACVC,EAAK,EAAGA,EAAKC,UAAU7O,OAAQ4O,IACpCD,EAAaC,EAAK,GAAKC,UAAUD,GAErC,IAAIZ,EAAkBV,EAAUhO,GAChC,IAAK0O,GAA8C,IAA3BA,EAAgBhO,OACpC,MAAO,GAEX,IAAI8O,EAAU,GAWd,OAVAd,EAAgBtM,SAAQ,SAAUoM,GAC9B,IACI,IAAI5H,EAAS4H,EAASM,WAAM3H,EAAWkI,GACvCG,EAAQtM,KAAK0D,EAChB,CACD,MAAOmI,GACHS,EAAQtM,UAAKiE,GACb8G,EAAac,EAAK/O,EACrB,CACb,IACewP,CACV,EAiCGC,MAbJ,WACIzB,EAAY,CAAA,CACf,EAYG0B,SAXJ,SAAkB1P,GACQgO,EAAUhO,WAIzBgO,EAAUhO,EACpB,EAOL,CACA6N,EAAe8B,QAAU9B,EACzB,IAGI+B,EAAuCrC,EAHjCM,GAKV,MAAMgC,EACFC,GACAC,SAAWH,IACXI,OACA,WAAAzQ,CAAY0Q,EAAUC,GAClBlN,KAAK8M,GAAKG,EAASE,OACnBnN,KAAK8M,GAAGM,SAAQ,CAACC,EAASC,KACtBtN,KAAKuN,eAAeD,EAAQ,IAC7BE,MAAMR,IACLhN,KAAKgN,OAASA,CAAM,GAE3B,CACD,0BAAIS,GACA,OAAO,CACV,CACD,UAAAC,CAAWvO,GACP,OAAIa,KAAKgN,QACLhN,KAAKgN,OAAO9E,KAAK/I,GACV2G,QAAQC,aAAQ5B,IAGhB2B,QAAQ6H,OAAO,gBAE7B,CACD,IAAAzF,CAAK0F,GACD,OAAO9H,QAAQ6H,OAAO,gBACzB,CACD,SAAAE,CAAUrC,GACN,OAAOxL,KAAK+M,SAASxB,IAAI,YAAaC,EACzC,CACD,kBAAAsC,CAAmBtC,GAEf,OADAA,GAAS,GACF,MACV,CACD,KAAAuC,GACI,OAAOjI,QAAQC,SAClB,CACD,IAAAiI,GACI,OAAOlI,QAAQC,SAClB,CACD,IAAAzI,GACI,MAAO,WACV,CACD,SAAAuL,GACI,OAAO/C,QAAQC,SAClB,CACD,cAAAwH,CAAepO,GACXa,KAAK+M,SAASX,QAAQ,YAAajN,EACtC,EAGL,MAAM8O,EACFf,OACAgB,OACAnB,SAAWH,IACX,WAAArQ,CAAY4R,EAAYjB,GACpBlN,KAAKkN,OAASA,EACdlN,KAAKkO,OAAS,IAAIE,aAAaD,GAC/BnO,KAAKkO,OAAOG,KAAKC,UAAa5J,IAC1B1E,KAAKuN,eAAe7I,EAAE6J,KAAK,CAElC,CACD,0BAAId,GACA,OAAO,CACV,CACD,UAAAC,CAAWvO,GAEP,OADAa,KAAKkO,OAAOG,KAAKG,YAAYrP,GACtB2G,QAAQC,SAClB,CACD,IAAAmC,CAAK0F,GACD,OAAO9H,QAAQ6H,OAAO,gBACzB,CACD,SAAAE,CAAUrC,GACN,OAAOxL,KAAK+M,SAASxB,IAAI,YAAaC,EACzC,CACD,kBAAAsC,CAAmBtC,GAEf,OADAA,GAAS,GACF,MACV,CACD,KAAAuC,GACI,OAAOjI,QAAQC,SAClB,CACD,IAAAiI,GACI,OAAOlI,QAAQC,SAClB,CACD,IAAAzI,GACI,MAAO,eACV,CACD,SAAAuL,GACI,OAAO/C,QAAQC,SAClB,CACD,cAAAwH,CAAepO,GACXa,KAAK+M,SAASX,QAAQ,YAAajN,EACtC,EAGL,IAAAsP,EAAA,MAAMC,EACF,aAAOC,GACH,QAA6B,IAAlBD,EAAME,QACb,OAAOF,EAAME,QAEjB,GAAsB,oBAAXxJ,OAEP,OADAsJ,EAAME,SAAU,GACT,EAEX,IACIF,EAAME,QAA6D,qBAAnDhS,OAAO8N,UAAU1M,SAAS4M,KAAKP,OAAOwE,QACzD,CACD,MAAOnK,GACHgK,EAAME,SAAU,CACnB,CACD,OAAOF,EAAME,OAChB,CACDE,gBAGJ,MAAMC,EACF,YAAOC,CAAMC,GACT,OAAO,IAAInJ,SAASC,GAAYO,WAAWP,EAASkJ,IACvD,CACDlJ,QACA4H,OACAuB,QACAC,UAAW,EACXC,UAAW,EACX,SAAIC,GACA,OAAOrP,KAAKmP,UAAYnP,KAAKoP,QAChC,CACD,WAAA7S,GACIyD,KAAKkP,QAAU,IAAIpJ,SAAQ,CAACC,EAAS4H,KACjC3N,KAAK+F,QAAWuJ,IACZtP,KAAKoP,UAAW,EAChBrJ,EAAQuJ,EAAE,EAEdtP,KAAK2N,OAAU5B,IACX/L,KAAKmP,UAAW,EAChBxB,EAAO5B,EAAI,CACd,GAER,EAGL,MAAMwD,EAAS,CAAA,EAIf,SAASC,EAAOC,GACZ,MAAMlN,EAAWgN,EAAOE,GACxB,GAAIlN,EACA,OAAOA,EAEX,MAAMmN,EAAQ,GACd,SAAS9R,IACL,OAAO,IAAIpB,MAAOsB,SACrB,CACD,MAAM6R,EAAY/R,IAElB,IAAIgS,EACAC,EAOJ,SAASC,EAAKxS,EAAM2R,GAChB,MAAMc,EAAcd,GAAQrR,IAC5B,IAAIoS,EAAO,EACPN,EAAMhS,OAAS,IACfsS,EAAOD,EAAcL,EAAMA,EAAMhS,OAAS,GAAGuR,MAEjDS,EAAMxP,KAAK,CAAE5C,OAAM2R,KAAMc,EAAaC,QACzC,CAhBDF,EAAK,QAASH,GAiBd,MAAMM,EAAW,CACb,aAAIN,GACA,OAAOA,CACV,EACD,WAAIC,GACA,OAAOA,CACV,EACD,UAAIC,GACA,OAAOA,CACV,EACDK,KAxBJ,WAII,OAHAN,EAAUhS,IACVkS,EAAK,MAAOF,GACZC,EAASD,EAAUD,EACZE,CACV,EAoBGC,OACAJ,SAGJ,OADAH,EAAOE,GAAaQ,EACbA,CACX,CAEA,MAAME,EAAuBzB,EAAMC,SAAWyB,QAAQ,MAAQhL,OAAOiL,UACrE,MAAMC,EACFC,GACArD,OACAD,SACAuD,aAAehB,EAAM,cACrBiB,UAAW,EACXC,UAAY9D,IACZ+D,WAAa,GACb,WAAApU,CAAY0Q,EAAUC,GAGlB,GAFAlN,KAAKiN,SAAWA,EAChBjN,KAAKkN,OAASA,GACTlN,KAAKiN,SAASsD,GACf,MAAM,IAAI1Q,MAAM,gBAEvB,CACD,SAAAgO,CAAUrC,GACN,OAAOxL,KAAK0Q,UAAUnF,IAAI,YAAaC,EAC1C,CACD,IAAAtD,CAAK/I,EAAK4E,GACN,OAAO,IAAI+B,SAAQ,CAACC,EAAS4H,KACzB3N,KAAK4Q,yBAAwB,KACzB,IACI5Q,KAAKuQ,IAAIrI,KAAK/I,GACd4G,GACH,CACD,MAAOrB,GACHiJ,EAAOjJ,EACV,IACFiJ,EAAO,GAEjB,CACD,IAAAK,GAGI,OAFAhO,KAAKkN,OAAO2D,KAAK,iBACjB7Q,KAAKyQ,UAAW,EACT,IAAI3K,SAAQ,CAACC,EAAS4H,KACzB3N,KAAK4Q,wBAAwB7K,EAAS4H,EAAO,GAEpD,CACD,KAAAI,GAKI,OAJA/N,KAAKyQ,UAAW,EACZzQ,KAAKuQ,IACLvQ,KAAKuQ,GAAGxC,QAELjI,QAAQC,SAClB,CACD,kBAAA+H,CAAmBtC,GACf,OAAOxL,KAAK0Q,UAAUnF,IAAI,qBAAsBC,EACnD,CACD,IAAAlO,GACI,OAAO0C,KAAKiN,SAASsD,EACxB,CACD,SAAA1H,GACI7I,KAAKuQ,IAAIxC,QACT,MAAM+C,EAAK,IAAI/B,EAIf,OAHA/O,KAAK4Q,yBAAwB,KACzBE,EAAG/K,SAAS,IAET+K,EAAG5B,OACb,CACD,uBAAA0B,CAAwBpF,EAAUuF,GAC9BA,EAASA,SAAoB,GACxB/Q,KAAKyQ,SAIkB,IAAxBzQ,KAAKuQ,IAAIS,YAIbhR,KAAK2Q,WAAWzQ,KAAK,CAAEsL,WAAUuF,WAC7B/Q,KAAK2Q,WAAWjT,OAAS,GAG7BsC,KAAKiR,cAPDzF,IAJAuF,EAAO,sBAAsB/Q,KAAKiN,SAASsD,oCAYlD,CACD,gBAAMU,CAAWC,EAAeC,GAS5B,GARAnR,KAAKkN,OAAO2D,KAAK,iBAAiB7Q,KAAKiN,SAASsD,sBAAsBW,mBAA+BC,QACrGnR,KAAKwQ,aAAaV,KAAK,uBACD3L,IAAlB+M,IACAA,EAAgBlR,KAAKiN,SAASmE,wBAEP,IAAhBD,IACPA,EAAcnR,KAAKiN,SAASoE,wBAEZlN,IAAhBgN,EAA2B,CAC3B,GAAoB,IAAhBA,EAEA,YADAnR,KAAKsR,qBAAqB,sBAAsBtR,KAAKiN,SAASsD,oCAGlEvQ,KAAKkN,OAAOqE,MAAM,cAAcJ,uBAAiCD,QACpE,CACD,UACUlR,KAAKwR,iBACXxR,KAAKwQ,aAAaV,KAAK,oBACvB9P,KAAKsR,sBACR,CACD,MACIhL,YAAW,KACP,MAAMmL,OAA0BtN,IAAhBgN,OAA4BhN,EAAYgN,EAAc,EACtEnR,KAAKiR,WAAWC,EAAeO,EAAQ,GACxCP,EACN,CACJ,CACD,cAAAM,GACI,MAAMV,EAAK,IAAI/B,EAuCf,OAtCA/O,KAAKkN,OAAOqE,MAAM,oBAAoBvR,KAAKiN,SAASsD,SACpDvQ,KAAKuQ,GAAK,IAAIJ,EAAqBnQ,KAAKiN,SAASsD,IAAM,IACvDvQ,KAAKuQ,GAAGmB,QAAW3F,IACf,IAAI4F,EAAS,GACb,IACIA,EAAS9K,KAAKC,UAAUiF,EAC3B,CACD,MAAOT,GACH,MAAMsG,EAAO,IAAIC,QACXC,EAAW,CAAC9U,EAAKV,KACnB,GAAqB,iBAAVA,GAAgC,OAAVA,EAAgB,CAC7C,GAAIsV,EAAKG,IAAIzV,GACT,OAEJsV,EAAKrG,IAAIjP,EACZ,CACD,OAAOA,CAAK,EAEhBqV,EAAS9K,KAAKC,UAAUiF,EAAK+F,EAChC,CACD9R,KAAKkN,OAAO2D,KAAK,sBAAsBc,KACvCb,EAAGnD,OAAO,SACV3N,KAAKgS,qBAAoB,EAAOL,EAAO,EAE3C3R,KAAKuQ,GAAG0B,QAAWlG,IACf/L,KAAKkN,OAAO2D,KAAK,qBAAqB9E,GAAKmG,gBAAgBnG,GAAK4F,UAChEb,EAAGnD,OAAO,UACV3N,KAAKgS,qBAAoB,EAAM,EAEnChS,KAAKuQ,GAAG4B,OAAS,KACbnS,KAAKwQ,aAAaV,KAAK,aACvB9P,KAAKkN,OAAO2D,KAAK,aAAa7Q,KAAKiN,SAASmF,UAAUC,eACtDvB,EAAG/K,UACH/F,KAAKgS,qBAAoB,EAAK,EAElChS,KAAKuQ,GAAGjC,UAAahB,IACjBtN,KAAK0Q,UAAUtE,QAAQ,YAAakB,EAAQiB,KAAK,EAE9CuC,EAAG5B,OACb,CACD,oBAAAoC,CAAqBhG,GACjBtL,KAAK2Q,WAAWvR,SAASkT,IACjBhH,EACIgH,EAAUvB,QACVuB,EAAUvB,OAAOzF,GAIrBgH,EAAU9G,UACb,IAELxL,KAAK2Q,WAAa,EACrB,CACD,mBAAAqB,CAAoBO,EAAQZ,GACxB3R,KAAK0Q,UAAUtE,QAAQ,qBAAsBmG,EAAQZ,EACxD,EAGL,MAAMa,EACFC,MACAC,WAAa,GACbC,SAAW,CAAA,EACXC,OACAC,KAAO,CAAA,EACPC,aAAe,CAAA,EACfvL,WACA,WAAAhL,CAAYkW,GACRzS,KAAKyS,MAAQ,GACb,IAAK,MAAMM,KAAQN,EACfzS,KAAKyS,MAAMM,EAAKzV,MAAQyV,EACxB/S,KAAK0S,WAAWxS,KAAK6S,EAAKzV,KAEjC,CACD,IAAA0G,CAAKuD,GACDvH,KAAKuH,WAAaA,EAClB,IAAK,MAAMjK,KAAQ0C,KAAK0S,WACpB,IAAK,MAAMtW,KAAQ4D,KAAKyS,MAAMnV,GAAM0V,MAAO,CACvC,IAAIC,EAAWjT,KAAK8S,aAAa1W,GAMjC,GALK6W,IACDA,EAAW,GAEfA,GAAY,EACZjT,KAAK8S,aAAa1W,GAAQ6W,EACtBA,EAAW,EACX,SAEJ,MAAMC,EAAM3L,EAAW4L,GAAG/W,GAAO+C,GAAQa,KAAKoT,eAAehX,EAAM+C,KACnEa,KAAK6S,KAAKzW,GAAQ8W,CACrB,CAER,CACD,cAAAE,CAAehX,EAAM+C,GACjB,IAAIa,KAAK4S,QAAWzT,EAGpB,IAAK,MAAM7B,KAAQ0C,KAAK0S,WACpB,IAA8C,IAA1C1S,KAAKyS,MAAMnV,GAAM0V,MAAMK,QAAQjX,GAAc,CAC7C,MAAMuW,EAAW3S,KAAK2S,SAASrV,IAAS,GACxC0C,KAAK2S,SAASrV,GAAQqV,EACtBA,EAASzS,KAAKf,EACjB,CAER,CACD,KAAAmU,CAAMhW,EAAMkO,GACJA,IACCxL,KAAK2S,SAASrV,IAAS,IAAI8B,QAAQoM,UAEjCxL,KAAK2S,SAASrV,GACrB,IAAK,MAAMlB,KAAQ4D,KAAKyS,MAAMnV,GAAM0V,MAChChT,KAAK8S,aAAa1W,IAAS,EACvB4D,KAAK8S,aAAa1W,IAAS,IAC3B4D,KAAKuH,YAAYgM,IAAIvT,KAAK6S,KAAKzW,WACxB4D,KAAK6S,KAAKzW,UACV4D,KAAK8S,aAAa1W,WAG1B4D,KAAKyS,MAAMnV,GACb0C,KAAKyS,MAAM/U,SACZsC,KAAK4S,QAAS,EAErB,EAGL,IAEIY,EAAS,CAACC,EAAO,MACnB,IAAIxT,EAAK,GACLoH,EAAIoM,EACR,KAAOpM,KACLpH,GALF,mEAKqC,GAAhByT,KAAKC,SAAiB,GAE3C,OAAO1T,GAGT,MAAM2T,EAAc,CAACC,EAAUC,EAAqBC,IACzC,IAAIjO,SAAQ,CAACC,EAAS4H,KACzB,MAAMqG,EAAU1N,YAAW,KAEvBqH,EADgBoG,GAAkB,wBAAwBD,IAC3C,GAChBA,GACqB,IAAIhO,QAAQ+N,GAE/BrG,MAAM5J,IACPqQ,aAAaD,GACbjO,EAAQnC,EAAO,IAEdpB,OAAO8I,IACR2I,aAAaD,GACbrG,EAAOrC,EAAM,GACf,IAIV,MAAM4I,EACFjH,SACAC,OACAkF,SACA+B,qBACAC,iBACAC,eACAC,qBACAC,cAAe,EACfC,aAAc,EACdrF,UAAW,EACXsF,kBACAC,mBACAC,kBACAC,qBACAC,oBACAC,iBACAzG,KACA0G,WACAC,SAAW,GACXC,qBAAsB,EACtBC,sBAAuB,EACvBC,qBAAsB,EACtBC,eACAC,iBAAkB,EAClBC,aAAe,eACf3V,OACA4V,WACAC,kBAAoB,IACpBC,yBAA2B,IAC3BC,oBAAsB,IACtB3I,SAAWH,IACX+F,SAAW,CACPgD,mBAAoB,CAAErY,KAAM,qBAAsBsY,OAAQ5V,KAAK6V,yBAAyBC,KAAK9V,OAC7F+V,mBAAoB,CAAEzY,KAAM,qBAAsBsY,OAAQ5V,KAAKgW,yBAAyBF,KAAK9V,OAC7FiW,kBAAmB,CAAE3Y,KAAM,oBAAqBsY,OAAQ5V,KAAKkW,wBAAwBJ,KAAK9V,OAC1FwU,YAAa,CACTlX,KAAM,cAAesY,OAAQ,QAGjCO,WAAY,CAAE7Y,KAAM,aAAcsY,OAAQ5V,KAAKoW,iBAAiBN,KAAK9V,OACrEqW,aAAc,CAAE/Y,KAAM,eAAgBsY,OAAQ5V,KAAKsW,mBAAmBR,KAAK9V,OAC3EuW,cAAe,CAAEjZ,KAAM,gBAAiBsY,OAAQ5V,KAAKwW,oBAAoBV,KAAK9V,OAC9EyW,aAAc,CAAEnZ,KAAM,eAAgBsY,OAAQ5V,KAAK0W,mBAAmBZ,KAAK9V,OAC3E2W,aAAc,CAAErZ,KAAM,eAAgBsY,OAAQ5V,KAAK4W,mBAAmBd,KAAK9V,OAC3E6W,sBAAuB,CAAEvZ,KAAM,wBAAyBsY,OAAQ5V,KAAK8W,4BAA4BhB,KAAK9V,OACtG+W,gBAAiB,CAAEzZ,KAAM,kBAAmBsY,OAAQ5V,KAAKgX,sBAAsBlB,KAAK9V,OACpFiX,kBAAmB,CAAE3Z,KAAM,oBAAqBsY,OAAQ5V,KAAKkX,wBAAwBpB,KAAK9V,OAC1FmX,uBAAwB,CAAE7Z,KAAM,yBAA0BsY,OAAQ5V,KAAKoX,6BAA6BtB,KAAK9V,QAE7G,WAAAzD,CAAY0Q,EAAUC,EAAQkF,GAC1BpS,KAAKiN,SAAWA,EAChBjN,KAAKkN,OAASA,EACdlN,KAAKoS,SAAWA,EAChBpS,KAAKiV,sBAAwB7P,OAAOiS,UACpCrX,KAAKsX,uBACLtX,KAAKuX,cACLvX,KAAKwX,8BACLxX,KAAKuV,WAAanQ,OAAO9H,KAAKuO,SAAS,QAAU,iBAAc1H,CAClE,CACD,mBAAAsT,GACIzX,KAAKuU,cAAe,EACpBvU,KAAKwU,aAAc,CACtB,CACD,qBAAIkD,GACA,OAAO1X,KAAKqU,cACf,CACD,mBAAIsD,GACA,OAAO3X,KAAKoU,gBACf,CACD,gBAAM1G,CAAWvO,GACb,GAAIa,KAAKmV,oBACL,OAAO/P,OAAOoJ,YAAY,CAAEoJ,aAAczY,GAAOa,KAAK0V,qBAE1D,IAAK1V,KAAKqO,KACN,MAAM,IAAIxO,MAAM,4DAEpBG,KAAKqO,KAAKG,YAAYrP,EACzB,CACD,0BAAIsO,GACA,OAAO,CACV,CACD,SAAAI,CAAUrC,GACN,OAAOxL,KAAK+M,SAASxB,IAAI,YAAaC,EACzC,CACD,IAAAtD,GACI,OAAOpC,QAAQ6H,OAAO,gBACzB,CACD,kBAAAG,CAAmBtC,GACf,OAAOxL,KAAK+M,SAASxB,IAAI,qBAAsBC,EAClD,CACD,UAAMwC,GACFhO,KAAKkN,OAAOqE,MAAM,2DACZvR,KAAKoN,UACXpN,KAAKgS,qBAAoB,EAC5B,CACD,KAAAjE,GACI,MAAMT,EAAU,CACZuK,WAAY,CACRzb,KAAM4D,KAAK2S,SAASsE,kBAAkB3Z,KACtCiR,KAAM,CACFuJ,SAAU9X,KAAK+U,WACfgD,YAAa/X,KAAKoS,UAAU4F,YAOxC,OAHAhY,KAAKqO,MAAMG,YAAYlB,GACvBtN,KAAKwU,aAAc,EACnBxU,KAAKgS,qBAAoB,EAAO,uBACzBlM,QAAQC,SAClB,CACD,IAAAzI,GACI,MAAO,cACV,CACD,eAAMuL,GAEF,aADM7I,KAAK+N,QACJjI,QAAQC,SAClB,CACD,0BAAAkS,GACI,OAAO,IAAInS,SAAQ,CAACC,EAAS4H,KACzB3N,KAAKkN,OAAOqE,MAAM,+CAClBvR,KAAKqO,KAAOrO,KAAKiN,SAASoB,KACtBrO,KAAKuU,aACLvU,KAAKkN,OAAOgL,KAAK,6EAGrBlY,KAAKqO,KAAKC,UAAa6J,IACnB,GAAInY,KAAKuU,eAAiB4D,EAAM5J,MAAMsJ,WAElC,YADA7X,KAAK+M,SAASX,QAAQ,YAAa+L,EAAM5J,MAG7C,MAAMA,EAAO4J,EAAM5J,MAAMsJ,WACpBtJ,IAGDA,EAAKnS,OAAS4D,KAAK2S,SAASwE,uBAAuB7Z,MAAQiR,EAAK6J,UAChEpY,KAAKqU,eAAiBrU,KAAKiN,SAAS+K,SAChChY,KAAKoS,UAAYpS,KAAKqU,iBACtBrU,KAAKoS,SAAS4F,SAAWhY,KAAKqU,eAC9BrU,KAAKoS,SAASpJ,SAAWhJ,KAAKqU,gBAElCtO,KAEAwI,EAAKnS,OAAS4D,KAAK2S,SAASwE,uBAAuB7Z,MAAQiR,EAAKjD,OAChEqC,EAAOY,EAAKjD,OACf,EAELtL,KAAKqO,KAAKG,YAAY,CAClBqJ,WAAY,CACRzb,KAAM4D,KAAK2S,SAASwE,uBAAuB7Z,QAEjD,GAET,CACD,wBAAA+a,CAAyB1T,GACrB,OAAOiP,GAAY,CAAC7N,EAAS4H,KACzB3N,KAAK2U,kBAAoB5O,EACzB/F,KAAK8U,iBAAmBnH,EACxB3N,KAAK+U,WAAa/U,KAAK+U,YAAcvB,EAAO,IAC5C,MAAM8E,EAAmBtY,KAAKuY,iBAAmB/E,EAAO,IAClDgF,EAAU,CACZX,WAAY,CACRzb,KAAM4D,KAAK2S,SAASsD,kBAAkB3Y,KACtCwa,SAAU9X,KAAK+U,WACf0D,WAAY,QACZH,mBACAhE,qBAAsBtU,KAAKsU,uBAInC,GADAtU,KAAKkN,OAAOqE,MAAM,8BACdvR,KAAKkV,qBAIL,OAHAsD,EAAQX,WAAWY,WAAa,QAChCD,EAAQX,WAAWS,iBAAmBtY,KAAK+U,WAC3CyD,EAAQX,WAAWzC,eAAiBpV,KAAKoV,eAClChQ,OAAOoJ,YAAYgK,EAASxY,KAAK0V,qBAE5C,IAAK/Q,EACD,MAAM,IAAI9E,MAAM,2EAEpB8E,EAAO6J,YAAYgK,EAASxY,KAAK0V,oBAAoB,GACtD1V,KAAKyV,yBAA0B,qDACrC,CACD,0BAAMiD,CAAqBC,GACvB,IAEI,aADMA,EACC,CAAEP,SAAS,EACrB,CACD,MAAO9M,GACH,MAAO,CAAE8M,SAAS,EACrB,CACJ,CACD,oBAAAd,GACQtX,KAAKiN,SAASoB,KACdrO,KAAKkN,OAAOqE,MAAM,yEAGtBnM,OAAOE,iBAAiB,WAAY6S,IAChC,MAAM5J,EAAO4J,EAAM5J,MAAMsJ,WACzB,IAAKtJ,GAAQvO,KAAKmP,SACd,OAEJ,MAAMyJ,EAAiB5Y,KAAKiN,SAAS2L,gBAAkB,GACvD,GAAIA,EAAelb,SAAWkb,EAAe/M,SAASsM,EAAMU,QAExD,YADA7Y,KAAKkN,OAAOgL,KAAK,uEAAuEC,EAAMU,UAGlG,IAAK7Y,KAAK8Y,sBAAsBvK,EAAKnS,MAEjC,YADA4D,KAAKkN,OAAO5B,MAAM,gFAAgFiD,EAAKnS,QAG3G,MAAM2c,EAAcxK,EAAKnS,KACzB4D,KAAKkN,OAAOqE,MAAM,8CAA8CwH,KAChE/Y,KAAK2S,SAASoG,GAAanD,OAAOuC,EAAM,GAE/C,CACD,WAAAZ,GACQvX,KAAKiN,SAASoB,KACdrO,KAAKkN,OAAOqE,MAAM,sEAGtBnM,OAAOE,iBAAiB,gBAAgB,KACpC,GAAItF,KAAKmV,oBACL,OAEJ,MAAM7H,EAAU,CACZuK,WAAY,CACRzb,KAAM4D,KAAK2S,SAAS8D,aAAanZ,KACjCiR,KAAM,CACFuJ,SAAU9X,KAAK+U,WACfgD,YAAa/X,KAAKoS,UAAU4F,YAIpChY,KAAKL,QACLK,KAAKL,OAAO6O,YAAYlB,EAAStN,KAAK0V,qBAE1C1V,KAAKqO,MAAMG,YAAYlB,EAAQ,GAEtC,CACD,mBAAAkJ,CAAoB2B,GAChBnY,KAAKkN,OAAOqE,MAAM,0CAClBvR,KAAKwU,aAAc,EACfxU,KAAKyU,oBACLzU,KAAKyU,2BACEzU,KAAKyU,mBAEZzU,KAAK0U,qBACLsE,cAAchZ,KAAK0U,2BACZ1U,KAAK0U,oBAEhB1U,KAAKL,OAASwY,EAAMc,OACpBjZ,KAAKuV,WAAanQ,OAAO9H,KAAKuO,SAAS,QAAU,YAAc,QAClE,CACD,wBAAAgK,CAAyBsC,GACrB,MAAM5J,EAAO4J,EAAM5J,MAAMsJ,WACzB,OAAI7X,KAAK+U,aAAexG,EAAKuJ,SAClB9X,KAAKkZ,4BAA4B3K,GAErCvO,KAAKmZ,oCAAoC5K,EAAM4J,EACzD,CACD,2BAAAe,CAA4B3K,GAGxB,GAFAvO,KAAKkN,OAAOqE,MAAM,yDAClBvR,KAAKmU,qBAAuB5F,EAAK4F,qBAC7BnU,KAAKkV,qBACL,OAAOlV,KAAKoZ,4BAA4B7K,GAE5C,GAAKA,EAAKF,KAAV,CAgBA,GAZArO,KAAKqU,eAAiBrU,KAAKuY,gBACvBvY,KAAKoS,WACLpS,KAAKoS,SAAS4F,SAAWhY,KAAKqU,eAC9BrU,KAAKoS,SAASpJ,SAAWhJ,KAAKoS,SAASpJ,SAAWhJ,KAAKoS,SAASpJ,SAAWhJ,KAAKqU,gBAAkBb,EAAO,KAEzGxT,KAAKoS,UAAY7D,EAAK3I,UACtB5F,KAAKoS,SAASC,YAAc9D,EAAK3I,QACjC5F,KAAKoS,SAASiH,gBAAkB9K,EAAK3I,SAEzC5F,KAAKoU,iBAAmB7F,EAAKoJ,gBAC7B3X,KAAKqO,KAAOE,EAAKF,KACjBrO,KAAKqO,KAAKC,UAAa5J,GAAM1E,KAAK+M,SAASX,QAAQ,YAAa1H,EAAE6J,MAC9DvO,KAAK2U,kBAIL,OAHA3U,KAAKkN,OAAOqE,MAAM,4DAClBvR,KAAK2U,gCACE3U,KAAK2U,kBAGhB3U,KAAKkN,OAAO5B,MAAM,iFAnBjB,MAFGtL,KAAKkN,OAAO5B,MAAM,sEAsBzB,CACD,2BAAA8N,CAA4B7K,GAwBxB,GAvBAvO,KAAKkN,OAAOqE,MAAM,0FAClBvR,KAAKkV,sBAAuB,EAC5BlV,KAAKmV,qBAAsB,EAC3BnV,KAAKqU,eAAiBrU,KAAKoV,gBAAkBpV,KAAK+U,WAC9C/U,KAAKkV,sBAAwBlV,KAAKoS,WAClCpS,KAAKoS,SAAS4F,SAAWhY,KAAKqU,gBAE9BrU,KAAKoS,UAAY7D,EAAK3I,UACtB5F,KAAKoS,SAASC,YAAc9D,EAAK3I,QACjC5F,KAAKoS,SAASiH,gBAAkB9K,EAAK3I,SAEzCR,OAAOE,iBAAiB,WAAY6S,IAChC,MAAMmB,EAAUnB,EAAM5J,MAAMgL,aAC5B,IAAKD,EACD,OAEJ,MAAMV,EAAiB5Y,KAAKiN,SAAS2L,gBAAkB,IACnDA,EAAelb,QAAWkb,EAAe/M,SAASsM,EAAMU,QAI5D7Y,KAAK+M,SAASX,QAAQ,YAAakN,GAH/BtZ,KAAKkN,OAAOgL,KAAK,uEAAuEC,EAAMU,SAGvD,IAE3C7Y,KAAK2U,kBAIL,OAHA3U,KAAKkN,OAAOqE,MAAM,4DAClBvR,KAAK2U,gCACE3U,KAAK2U,iBAGnB,CACD,mCAAAwE,CAAoC5K,EAAM4J,GACtC,GAAInY,KAAKkV,sBAAwBlV,KAAKmV,oBAElC,YADAnV,KAAKkN,OAAOqE,MAAM,yFAGtBvR,KAAKkN,OAAOqE,MAAM,mEAAmEhD,EAAKuJ,YAC1F,MAAM0B,EAAQxZ,KAAKgV,SAASyE,MAAMC,GAAMA,EAAEC,eAAiBpL,EAAKuJ,WAC3D0B,GAILA,EAAMI,WAAY,EAClB5Z,KAAKkN,OAAOqE,MAAM,iCAAiChD,EAAKuJ,2EACxDvJ,EAAK6G,eAAiBpV,KAAKqU,eAC3BmF,EAAMP,OAAOzK,YAAY2J,EAAM5J,KAAMiL,EAAMX,OAAQ,CAACtK,EAAKF,QANrDrO,KAAKkN,OAAO5B,MAAM,qDAAqDiD,EAAKuJ,wDAQnF,CACD,wBAAA9B,GACIhW,KAAKkN,OAAOqE,MAAM,kHACdvR,KAAK8U,mBACL9U,KAAK8U,iBAAiB,mHACf9U,KAAK8U,iBAEnB,CACD,uBAAAoB,CAAwBiC,GACpB,GAAInY,KAAKkV,qBAEL,YADAlV,KAAKkN,OAAOqE,MAAM,sEAGtB,MAAM0H,EAASd,EAAMc,OACf1K,EAAO4J,EAAM5J,KAAKsJ,WACxB,OAAKtJ,EAAKkK,YAAkC,eAApBlK,EAAKkK,WAGxBlK,EAAKuJ,SAGL9X,KAAKL,QAGVK,KAAKkN,OAAOqE,MAAM,mDAAmDhD,EAAKuJ,YAC1E9X,KAAKgV,SAAS9U,KAAK,CAAEyZ,aAAcpL,EAAKuJ,SAAUmB,SAAQW,WAAW,EAAOf,OAAQV,EAAMU,SAC1F7Y,KAAKkN,OAAOqE,MAAM,eAAehD,EAAKuJ,4EACtC9X,KAAKL,OAAO6O,YAAY2J,EAAM5J,KAAMvO,KAAK0V,sBAL9B1V,KAAK6Z,wBAAwBZ,EAAQd,EAAMU,OAAQ,iGAHnD7Y,KAAK6Z,wBAAwBZ,EAAQd,EAAMU,OAAQ,iFAHnD7Y,KAAK6Z,wBAAwBZ,EAAQd,EAAMU,OAAQ,uFAYjE,CACD,gBAAAzC,CAAiB+B,GACb,IAAKnY,KAAKwU,YAEN,YADAxU,KAAKkN,OAAOqE,MAAM,yDAGtB,IAAKvR,KAAKuU,aAEN,YADAvU,KAAKkN,OAAOqE,MAAM,+DAGtB,MAAMjE,EAAU,CACZuK,WAAY,CACRzb,KAAM4D,KAAK2S,SAAS6B,YAAYlX,OAGpC0C,KAAKmV,sBACL7H,EAAQuK,WAAWiC,QAAU,CAAE9B,SAAUhY,KAAK+U,aAElD,MAAMkE,EAASd,EAAMc,OACrBjZ,KAAKkN,OAAOqE,MAAM,oDAClB0H,EAAOzK,YAAYlB,EAAS6K,EAAMU,OACrC,CACD,2BAAArB,GACIxX,KAAK6N,WAAW1O,IACK,mBAAbA,EAAI/C,OACJ4D,KAAKkN,OAAOqE,MAAM,kCAClBvR,KAAKwU,aAAc,EACnBxU,KAAKgS,qBAAoB,EAAO,oBACnC,GAER,CACD,kBAAA4E,GACI,MAAMtJ,EAAU,CACZuK,WAAY,CACRzb,KAAM4D,KAAK2S,SAAS8D,aAAanZ,KACjCiR,KAAM,CACFuJ,SAAU9X,KAAK+U,WACfgD,YAAa/X,KAAKoS,UAAU4F,YAIxC,GAAIhY,KAAKmV,oBACL,OAAO/P,OAAOoJ,YAAY,CAAEoJ,aAActK,GAAWtN,KAAK0V,qBAE9D1V,KAAKqO,MAAMG,YAAYlB,EAC1B,CACD,kBAAAoJ,CAAmByB,GACf,MAAM5J,EAAO4J,EAAM5J,KAAKsJ,WAClBC,EAAWvJ,GAAMA,KAAKuJ,SAC5B,IAAKA,EAED,YADA9X,KAAKkN,OAAOgL,KAAK,4EAGFlY,KAAKgV,SAASyE,MAAMD,GAAUA,EAAMG,eAAiB7B,KAKxE9X,KAAKkN,OAAOqE,MAAM,sCAAsCuG,KACxD9X,KAAKgV,SAAWhV,KAAKgV,SAAS3S,QAAQmX,GAAUA,EAAMG,eAAiB7B,KAJnE9X,KAAKkN,OAAOgL,KAAK,uFAKxB,CACD,kBAAA5B,GAEC,CACD,mBAAAtE,CAAoBO,EAAQZ,GACxB3R,KAAKuU,aAAehC,EACpBvS,KAAK+M,SAASX,QAAQ,qBAAsBmG,EAAQZ,EACvD,CACD,qBAAAmH,CAAsBiB,GAClB,MAAiC,iBAAnBA,KAAiC/Z,KAAK2S,SAASoH,EAChE,CACD,uBAAAF,CAAwBZ,EAAQJ,EAAQlH,GACpC3R,KAAKmP,UAAW,EAChBnP,KAAKkN,OAAO5B,MAAMqG,GAClB,MAAMqI,EAAY,CACdnC,WAAY,CACRzb,KAAM4D,KAAK2S,SAASoD,mBAAmBzY,OAG/C2b,EAAOzK,YAAYwL,EAAWnB,EACjC,CACD,kCAAAoB,GACI,OAAOja,KAAKka,uBACP1M,MAAK,IAAMoG,GAAY,CAAC7N,EAAS4H,KAClC3N,KAAK4U,qBAAuB7O,EAC5B/F,KAAK6U,oBAAsBlH,EAM3B3N,KAAKkN,OAAOqE,MAAM,+DAClBnM,OAAOoJ,YANS,CACZqJ,WAAY,CACRzb,KAAM,oBAIc4D,KAAK0V,oBAAoB,GACtD1V,KAAKwV,kBAAmB,2IAC9B,CACD,2BAAAsB,CAA4BqB,GACxB,MAAM5J,EAAO4J,EAAM5J,MAAMsJ,WACzB,IAAKtJ,EAAK4L,SACN,OAAOna,KAAK6U,oBAAsB7U,KAAK6U,oBAAoB,kJAA+I1Q,EAE1MnE,KAAK4U,uBACL5U,KAAK4U,8BACE5U,KAAK4U,sBAEhB5U,KAAKkV,sBAAuB,EAC5BlV,KAAKuV,WAAa,YAClBvV,KAAKkN,OAAOqE,MAAM,qDACrB,CACD,qBAAAyF,GAEC,CACD,uBAAAE,GAEC,CACD,4BAAAE,GAEC,CACD,oBAAA8C,GAEI,QADuB9U,OAAOiS,WAAW+C,QAE9BtU,QAAQC,UAEZ6N,GAAa7N,IAChBX,OAAOE,iBAAiB,kBAAkB,KACtCS,GAAS,GACX,GACH/F,KAAKyV,yBAA0B,oEACrC,CACD,aAAMrI,GACF,GAAIpN,KAAKiN,SAASoB,KAGd,aAFMrO,KAAKiY,kCACXjY,KAAKkN,OAAOqE,MAAM,8CAGtBvR,KAAKkN,OAAOqE,MAAM,kDACZvR,KAAKqa,mBACLra,KAAKqY,yBAAyBrY,KAAKL,QACzCK,KAAKkN,OAAOqE,MAAM,0BACrB,CACD,gBAAM8I,GACF,MAAMC,EAA2B,uFAC3BC,EAAkBva,KAAKwa,2BAA2BpV,QAClDqV,EAAmBza,KAAK0a,gCAAgCtV,OAAOuV,KAAKC,OAAQxV,OAAOuV,KACnFE,EAAgB,IAAIC,IAAI,IAAIP,KAAoBE,IACtD,IAAKI,EAAcpH,OAASzT,KAAKiV,oBAC7B,MAAM,IAAIpV,MAAMya,GAEpB,IAAKO,EAAcpH,MAAQzT,KAAKiV,oBAE5B,kBADMjV,KAAKia,qCAIf,UADiCja,KAAK0Y,qBAAqB1Y,KAAK+a,cAAczc,MAAM0c,KAAKH,MAClEzC,QACnBpY,KAAKkN,OAAOqE,MAAM,qCADtB,CAIA,IAAKvR,KAAKiV,oBACN,MAAM,IAAIpV,MAAMya,SAEdta,KAAKia,oCAJV,CAKJ,CACD,0BAAAO,CAA2BS,GACvB,OAASA,GAAiBA,IAAkBA,EAAcN,IAAY,CAACM,EAActb,UAAWK,KAAKwa,2BAA2BS,EAActb,SAA7E,EACpE,CACD,+BAAA+a,CAAgCE,EAAQM,GACpC,OAASN,GAAWM,GAAWN,IAAWM,EAAgB,CAACN,KAAW5a,KAAKwa,2BAA2BI,MAAY5a,KAAK0a,gCAAgCE,EAAOA,OAAQA,IAAjH,EACxD,CACD,aAAAG,CAAcI,GACV,MACMxC,EAAc/E,GAAa7N,IAC7B/F,KAAKyU,kBAAoB1O,EACzB,MAAMuH,EAAU,CACZuK,WAAY,CACRzb,KAAM4D,KAAK2S,SAAS0D,aAAa/Y,OAGzC0C,KAAK0U,mBAAqBlO,aAAY,KAClC2U,EAAQ/b,SAASuF,IACbA,EAAO6J,YAAYlB,EAAStN,KAAK0V,oBAAoB,GACvD,GACH,IAAK,GACT1V,KAAKwV,kBAbyB,wFAoBjC,OANAmD,EAAYnW,OAAM,KACVxC,KAAK0U,qBACLsE,cAAchZ,KAAK0U,2BACZ1U,KAAK0U,mBACf,IAEEiE,CACV,CACD,aAAAJ,GACI,MAAwB,cAApBvY,KAAKuV,WACEnQ,OAAO9H,KAAK8d,UAAU,EAAGhW,OAAO9H,KAAK+V,QAAQ,SAEpDjO,SAAWA,OAAOuV,IAGlBvV,OAAO9H,MAAMuO,SAAS,OACfzG,OAAO9H,MAElB0C,KAAKsU,qBAAuBtU,KAAKsU,sBAAwB,OAAOd,EAAO,MAChExT,KAAKsU,2BAPZ,CAQH,EAaL,MAAM+G,EACFC,oBACAC,MAAQ,GACRC,kBAAmB,EACnB,WAAAjf,CAAY+e,EAAsB,GAC9Btb,KAAKsb,oBAAsBA,CAC9B,CACD,OAAAG,CAAQ7R,GACJ,OAAO,IAAI9D,SAAQ,CAACC,EAAS4H,KACzB3N,KAAKub,MAAMrb,KAAK,CAAE0J,SAAQ7D,UAAS4H,WACnC3N,KAAK0b,cAAc,GAE1B,CACD,kBAAMA,GACF,IAAI1b,KAAKwb,iBAAT,CAIA,IADAxb,KAAKwb,kBAAmB,EACjBxb,KAAKub,MAAM7d,QAAQ,CACtB,MAAMie,EAAY3b,KAAKub,MAAMK,QAC7B,IAAKD,EAED,YADA3b,KAAKwb,kBAAmB,GAG5B,IACI,MAAMK,QAAqBF,EAAU/R,SACrC+R,EAAU5V,QAAQ8V,EACrB,CACD,MAAOvQ,GACHqQ,EAAUhO,OAAOrC,EACpB,OACKtL,KAAK8b,eACd,CACD9b,KAAKwb,kBAAmB,CAjBvB,CAkBJ,CACD,aAAAM,GACI,OAAO,IAAIhW,SAASiW,GAAQzV,WAAWyV,EAAK/b,KAAKsb,sBACpD,EAGL,SAASU,EAAerT,EAAQpB,EAAY2F,EAAQ+O,EAAiBC,GACnD,MAAVvT,IACAA,EAAS,UAEbsT,EAAkBA,GAAmB,CAAC,WACtCC,EAAgBA,GAAiB,CAAC,SAClC,IAEIC,EAFAC,EAAsB,WAAXzT,EACX0T,GAAkB,EAElBC,GAAgB,EACpB,MAAMtR,EAAY4B,IAClBrF,EAAWgV,cA4EX,WACID,GAAgB,EAChBpP,EAAOqE,MAAM,sBACb6K,GAAW,EACXC,GAAkB,EAClBrR,EAAUoB,QAAQ,SAAU,CAAEmQ,cAAc,GAC/C,IAjFDhV,EAAWiV,UAkFX,WACIF,GAAgB,EACZD,IACAnP,EAAOqE,MAAM,iDACb9T,EAAK0e,GAEZ,IAvFD5U,EAAW4L,GAAG,WAAYhU,GAAQsd,EAAqBtd,KACvDoI,EAAW4L,GAAG,SAAUhU,GAAQud,EAAmBvd,KACnDoI,EAAW4L,GAAG,UAAWhU,GAAQsd,EAAqBtd,KAClD8c,GACAA,EAAgB7c,SAASud,IACrBpV,EAAW4L,GAAGwJ,GAAKxd,GAAQsd,EAAqBtd,IAAK,IAGzD+c,GACAA,EAAc9c,SAASud,IACnBpV,EAAW4L,GAAGwJ,GAAKxd,GAAQud,EAAmBvd,IAAK,IAG3D,MAAMyd,EAAc,CAAA,EACpB,SAASnf,EAAKsG,GAEV,OADAoY,EAAiBpY,EACV,IAAI+B,SAAQ,CAACC,EAAS4H,KACzB,GAAIyO,EAEA,YADArW,EAAQ,CAAE,GAGd,IAAI0B,EACJ,GAAe,WAAXkB,EACAlB,EAAc6U,EAAgBxW,QAAQC,QAAQ,CAAE,GAAID,QAAQ6H,OAAO,gCAElE,CACDT,EAAOqE,MAAM,kBAAkB5I,KAO/BlB,EAAcS,EANE,CACZ9L,KAAM,OACNygB,YAAalU,EACbA,OAAQ,SACR5E,WAGP,CACD0D,EACK+F,MAAK,MA+BlB,WACIN,EAAOqE,MAAM,YAAc5I,GAC3ByT,GAAW,EACX,MAAMU,EAAeT,EACrBA,GAAkB,EAClBrR,EAAUoB,QAAQ,WAAY0Q,EACjC,CApCWC,GACAhX,EAAQ,CAAE,EAAC,IAEVvD,OAAOuJ,IACRmB,EAAOqE,MAAM,iBAAmB5I,EAAS,YAAc9B,KAAKC,UAAUiF,IACtE4B,EAAO5B,EAAI,GACb,GAET,CA2CD,SAASnD,EAAS4C,GAId,OAHI4Q,GACA5Q,GAAS,GAENR,EAAUO,IAAI,WAAYC,EACpC,CAOD,SAASkR,EAAmBvd,GACxB,GAAIwJ,IAAWxJ,EAAIwJ,OACf,OAEJ,MAAMqU,EAAY7d,EAAI8d,WACtB,IAAKD,EACD,OAEJ,MAAME,EAAQN,EAAYI,GACrBE,GAGLA,EAAM5R,MAAMnM,EACf,CACD,SAASsd,EAAqBtd,GAC1B,GAAIA,EAAIwJ,SAAWA,EACf,OAEJ,MAAMqU,EAAY7d,EAAI8d,WACtB,IAAKD,EACD,OAEJ,MAAME,EAAQN,EAAYI,GACrBE,GAGLA,EAAM9E,QAAQjZ,EACjB,CACD,SAASge,IACL,OAAO3J,EAAO,GACjB,CACD,IAAI4J,EAAc,GAClB,SAASlV,EAAK/I,EAAKke,EAAKtZ,GAEpB,GAAI5E,EAAI/C,OAAsC,IAD/B,CAAC,QAAS,QACFiX,QAAQlU,EAAI/C,QAC1BggB,EAAU,CACX/Q,QAAQ6M,KAAK,6BAA6B/Y,EAAIwJ,UAAUxJ,EAAI/C,uCAC5D,MAAM0U,EAAK,IAAI/B,EAEf,GADAqO,EAAYld,KAAK,CAAEf,MAAKke,MAAKtZ,UAAS+M,OACX,IAAvBsM,EAAY1f,OAAc,CAC1B,MAAM4f,EAAc1U,GAAS,KACzBsE,EAAO2D,KAAK,2CAA2CuM,EAAY1f,cAAc0f,EAAYhW,KAAK/H,GAAMA,EAAEF,IAAI/C,YAC9GghB,EAAYhe,SAASme,IACjBrV,EAAKqV,EAAGpe,IAAKoe,EAAGF,IAAKE,EAAGxZ,SACnByJ,MAAM8B,GAAMiO,EAAGzM,GAAG/K,QAAQuJ,KAC1B9M,OAAOkC,GAAM6Y,EAAGzM,GAAGnD,OAAOjJ,IAAG,IAEtC0Y,EAAc,GACdE,GAAa,GAEpB,CACD,OAAOxM,EAAG5B,OACb,CAELnL,EAAUA,GAAW,GACrB5E,EAAI8d,WAAa9d,EAAI8d,YAAcE,IACnChe,EAAIwJ,OAASxJ,EAAIwJ,QAAUA,EACtB5E,EAAQyZ,aACTre,EAAIiK,QAAU7B,EAAW8B,QAE7B,MAAM2T,EAAY7d,EAAI8d,WACtB,OAAO,IAAInX,SAAQ,CAACC,EAAS4H,KACzBiP,EAAYI,GAAa,CACrB5E,QAAUqF,WACCb,EAAYI,GACnBS,EAAWC,KAAOL,EAClBtX,EAAQ0X,EAAW,EAEvBnS,MAAQqS,IACJzQ,EAAOgL,KAAK,mBAAmBrR,KAAKC,UAAU6W,aACvCf,EAAYI,GACnBW,EAASD,KAAOL,EAChB1P,EAAOgQ,EAAS,GAGxBpW,EACKW,KAAK/I,EAAK4E,GACVvB,OAAOuJ,IACR6Q,EAAYI,GAAW1R,MAAM,CAAES,OAAM,GACvC,GAET,CAOD,MAAO,CACHtO,OACAmgB,MAhJJ,WACI,MAAe,WAAXjV,EACO7C,QAAQC,WAEnBmH,EAAOqE,MAAM,oBAAsB5I,EAAS,OAM5C0T,GAAkB,EACXnU,EANU,CACb9L,KAAM,QACNygB,YAAalU,EACbA,OAAQ,WAIP6E,MAAK,KACN4O,GAAW,EACXpR,EAAUoB,QAAQ,SAAS,IAE1B5J,OAAM,KACP4Z,GAAW,EACXpR,EAAUoB,QAAQ,SAAS,IAElC,EA6HGxD,WACAiV,OAlGJ,SAAgBrS,GAIZ,OAHK4Q,GACD5Q,IAEGR,EAAUO,IAAI,SAAUC,EAClC,EA8FGtD,OACAM,kBAZJ,SAA2BrJ,GAIvB,OAHAA,EAAI8d,WAAa9d,EAAI8d,WAAa9d,EAAI8d,WAAaE,IACnDhe,EAAIwJ,OAASxJ,EAAIwJ,QAAUA,EAC3BxJ,EAAIiK,QAAU7B,EAAW8B,OAClB9B,EAAWW,KAAK/I,EAC1B,EAQGgU,GAAI,CAAC/W,EAAMoP,KACPjE,EAAW4L,GAAG/W,GAAO+C,IACjB,GAAIA,EAAIwJ,SAAWA,EAGnB,IACI6C,EAASrM,EACZ,CACD,MAAOuF,GACHwI,EAAO5B,MAAM,qBAAqB5G,QAAQA,EAAE0G,qBAAqBvE,KAAKC,UAAU3H,KAAQuF,EAC3F,IACH,EAEN8X,SAAWhR,GAAajE,EAAWiV,SAAShR,GAC5CoO,UAAYpO,GAAajE,EAAWqS,UAAUpO,GAC9C+Q,aAAe/Q,GAAajE,EAAWgV,aAAa/Q,GACpD,UAAInC,GACA,OAAO9B,EAAW8B,MACrB,EACD,UAAIV,GACA,OAAOA,CACV,EAET,CAEA,MAAMmV,EACF7Q,SACAC,OACA6Q,gBAAkB,EAClB1U,OACA2U,MACAnN,KACAoN,iBACAC,iBACAC,aACAC,SACAC,gBAAkB,CAAA,EAClBC,IAAM,EACNvR,SAAWH,IACX2R,YAAa,EACbC,SAAU,EACV5e,UACA6e,kBACAC,aACAC,iBACAC,YACAC,gBAAiB,EACjBC,mBAAoB,EACpBC,wBAA0B,GAC1BC,WAAa,aACbC,cAAgBjf,KAAKgf,WAAWthB,OAChCwhB,WAAalf,KAAKif,cAAgB,EAClCE,oBAAsBnf,KAAKgf,WAAW,GACtCI,YAAc,IAAI/D,EAClBgE,aAAc,EACdC,gBAAiB,EACjBC,UACAC,SAAW,GACXC,aACAC,cAAe,EACfC,qBAAuB,EACvBC,YACA,WAAArjB,CAAY0Q,EAAUC,GAMlB,GALAlN,KAAKiN,SAAWA,EAChBjN,KAAKkN,OAASA,GACdD,EAAWA,GAAY,IACdoE,kBAAoBpE,EAASoE,mBAAqB,GAC3DpE,EAASmE,kBAAoBnE,EAASmE,mBAAqB,IACvDnE,EAAS4S,OACT7f,KAAKJ,UAAY,IAAIiN,EAAgBI,EAAS4S,OAAQ3S,EAAO4S,UAAU,kBAEtE,GAAI7S,EAAS8S,aACd/f,KAAKJ,UAAY,IAAIqO,EAAsBhB,EAAS8S,aAAc7S,EAAO4S,UAAU,uBAElF,GAAI7S,EAAS+S,YACdhgB,KAAKJ,UAAY,IAAIsU,EAAqBjH,EAAS+S,YAAa9S,EAAO4S,UAAU,gBAAiB7S,EAASmF,cAE1G,SAAoBjO,IAAhB8I,EAASsD,GAId,MAAM,IAAI1Q,MAAM,uCAHhBG,KAAKJ,UAAY,IAAI0Q,EAAGrD,EAAUC,EAAO4S,UAAU,MAItD,CACD9f,KAAKwe,QAAUtR,EAAO+S,WAAW,SACjC/S,EAAOqE,MAAM,iBAAiBvR,KAAKJ,UAAUtC,oBAC7C,MAAM4iB,EAAyBlgB,KAAKJ,UAAUkO,mBAAmB9N,KAAKmgB,wBAAwBrK,KAAK9V,OAC7FogB,EAAiBpgB,KAAKJ,UAAUiO,UAAU7N,KAAKqgB,uBAAuBvK,KAAK9V,OACjFA,KAAK+e,wBAAwB7e,KAAKggB,GAClClgB,KAAK+e,wBAAwB7e,KAAKkgB,GAClCpgB,KAAKye,kBAAoBze,KAAKJ,UAC9BI,KAAKsgB,MACR,CACD,qBAAMC,CAAgBtT,GAClB,OAAOjN,KAAKof,YAAY3D,SAAQ3T,UAC5B,IAAKmF,GAAgC,iBAAbA,EACpB,MAAM,IAAIpN,MAAM,0EAEpB,QAA6B,IAAlBoN,EAAS7Q,KAChB,MAAM,IAAIyD,MAAM,gEAEpBG,KAAKkN,OAAOsT,MAAM,4CAA4C3Z,KAAKC,UAAUmG,MAC7E,MAAMwT,EAA0C,cAAlBxT,EAAS7Q,KAAuB4D,KAAK0gB,yBAAyBzT,GAAYjN,KAAKye,kBAC7Gze,KAAK2e,iBAAmB8B,EACxBzgB,KAAK4e,YAAgC,cAAlB3R,EAAS7Q,KAAuB4D,KAAK2gB,oBAAoB1T,GAAYjN,KAAK0e,aAC7F,MAAMkC,EAAgB5gB,KAAK6gB,mBAC3B7gB,KAAK6e,gBAAiB,EACtB7e,KAAK8e,mBAAoB,EACzB9e,KAAKkN,OAAOsT,MAAM,uEACZxgB,KAAKJ,UAAUmO,QACrB,UACU6S,EACN,MAAME,EAAkB9gB,KAAKJ,YAAc6gB,EAG3C,OAFAzgB,KAAKkN,OAAO2D,KAAK,8EAA8EiQ,KAC/F9gB,KAAK8e,mBAAoB,EAClB,CAAE1G,QAAS0I,EACrB,CACD,MAAOxV,GAIH,OAHAtL,KAAKkN,OAAO2D,KAAK,yFACjB7Q,KAAKugB,gBAAgB,CAAEnkB,KAAM,YAC7B4D,KAAK8e,mBAAoB,EAClB,CAAE1G,SAAS,EACrB,IAER,CACD,gBAAA2I,CAAiBvV,GACb,OAAOxL,KAAK+M,SAASxB,IAAI,iBAAkBC,EAC9C,CACD,iBAAAwV,CAAkBC,GACdjhB,KAAK+M,SAASX,QAAQ,iBAAkB6U,EAC3C,CACD,IAAA/Y,CAAKoF,EAASvJ,GACV,GAAI/D,KAAKJ,UAAU8N,YACf1N,KAAKJ,UAAU6N,uBAAwB,CACvC,MAAMtO,EAAMa,KAAKkhB,oBAAoB5T,GAIrC,OAHItN,KAAKwe,SACLxe,KAAKkN,OAAOsT,MAAM,MAAM3Z,KAAKC,UAAU3H,MAEpCa,KAAKJ,UAAU8N,WAAWvO,EAAK4E,EACzC,CACI,CACD,MAAMod,EAAanhB,KAAKohB,oBAAoB9T,GAI5C,OAHItN,KAAKwe,SACLxe,KAAKkN,OAAOsT,MAAM,MAAMW,KAErBnhB,KAAKJ,UAAUsI,KAAKiZ,EAAYpd,EAC1C,CACJ,CACD,EAAAoP,CAAG/W,EAAMmR,GACLnR,EAAOA,EAAK4I,mBACuBb,IAA/BnE,KAAKqe,gBAAgBjiB,KACrB4D,KAAKqe,gBAAgBjiB,GAAQ,IAEjC,MAAM6D,EAAKD,KAAKse,MAEhB,OADAte,KAAKqe,gBAAgBjiB,GAAM6D,GAAMsN,EAC1B,CACHnR,OACA6D,KAEP,CACD,GAAAsT,CAAI1C,UACO7Q,KAAKqe,gBAAgBxN,EAAKzU,KAAK4I,eAAe6L,EAAK5Q,GAC7D,CACD,eAAIohB,GACA,OAAOrhB,KAAKqf,WACf,CACD,SAAAzF,CAAUpO,GACN,OAAOxL,KAAKwc,UAAS,KACjB,MAAM8E,EAAgBthB,KAAKJ,UAAUtC,OACrCkO,EAAS8V,EAAc,GAE9B,CACD,YAAA/E,CAAa/Q,GACT,OAAOxL,KAAK+M,SAASxB,IAAI,eAAgBC,EAC5C,CACD,WAAM+V,CAAMC,EAAa3Y,GAIrB,GAHK7I,KAAK0e,eACN1e,KAAK0e,aAAe8C,GAEpBxhB,KAAK6e,eAAgB,CACrB7e,KAAKkN,OAAOsT,MAAM,kDAElBgB,EADgBxhB,KAAKyhB,iBACID,CAC5B,CACDxhB,KAAKkN,OAAOsT,MAAM,iCAAiCxgB,KAAKJ,UAAUtC,mBAAmBuJ,KAAKC,UAAU0a,MACpG,UACUxhB,KAAKJ,UAAUoO,OACrBhO,KAAKkN,OAAOsT,MAAM,cAAcxgB,KAAKJ,UAAUtC,6BAC/CkS,EAAM,cAAcM,KAAK,oBACzB,MAAMsC,QAAiBpS,KAAK0hB,UAAUF,EAAa3Y,GAGnD,OAFA7I,KAAKkN,OAAOsT,MAAM,4BAA4B3Z,KAAKC,UAAUsL,MAC7D5C,EAAM,cAAcM,KAAK,sBAClBsC,CACV,CACD,MAAO9G,GAKH,MAJItL,KAAK8e,oBACL9e,KAAKkN,OAAOsT,MAAM,+EAClBxgB,KAAK2hB,sBAEH,IAAI9hB,MAAMyL,EACnB,CACJ,CACD,YAAMsW,SACI5hB,KAAK6hB,mBACL7hB,KAAKJ,UAAUmO,OACxB,CACD,QAAAyO,CAAShR,GAIL,OAHIxL,KAAKqf,aACL7T,IAEGxL,KAAK+M,SAASxB,IAAI,aAAcC,EAC1C,CACD,MAAA7C,CAAOA,EAAQsT,EAAiBC,GAC5B,IAAIxU,EAAU1H,KAAKwf,SAAS/F,MAAMzW,GAAMA,EAAE2F,SAAWA,IAKrD,OAJKjB,IACDA,EAAUsU,EAAcrT,EAAQ3I,KAAMA,KAAKkN,OAAO4S,UAAU,UAAUnX,KAAWsT,EAAiBC,GAClGlc,KAAKwf,SAAStf,KAAKwH,IAEhBA,CACV,CACD,SAAAoa,GAKI,OAAK9hB,KAAKyf,aAGHzf,KAAKyf,aAAavX,KAPF,CACnBS,OAAQ,SACRvM,KAAM,iBAMLoR,MAAMuO,GACAA,EAAIiC,QAJJlY,QAAQ6H,OAAO,IAAI9N,MAAM,4BAMvC,CACD,SAAAgJ,GACI,OAAO7I,KAAKJ,UAAUiJ,WACzB,CACD,WAAAkZ,CAAYzlB,GACR0D,KAAKqf,YAAc/iB,EACf0D,KAAKqf,aACLrf,KAAK+M,SAASX,QAAQ,aAE7B,CACD,iBAAA4V,CAAkB1U,EAASlR,GACvB,MAAM6lB,EAAWjiB,KAAKqe,gBAAgBjiB,EAAK4I,oBAC1Bb,IAAb8d,GACArlB,OAAOC,KAAKolB,GAAU7iB,SAAS8iB,IAC3B,MAAMC,EAAUF,EAASC,GACzB,QAAgB/d,IAAZge,EACA,IACIA,EAAQ7U,EACX,CACD,MAAOhC,GACH,IACItL,KAAKkN,OAAO5B,MAAM,+BAA+BA,EAAMF,QAASE,EACnE,CACD,MAAO8W,GACH/W,QAAQgX,IAAI,yBAA0B/W,EACzC,CACJ,CACJ,GAGZ,CACD,uBAAA6U,CAAwBvG,GAChB5Z,KAAKue,aAAe3E,IAGxB5Z,KAAKue,WAAa3E,EACdA,GACI5Z,KAAKiN,UAAUqV,aAAa5kB,SAC5BsC,KAAKoe,SAAW,IAAI5L,EAAoBxS,KAAKiN,SAASqV,aACtDtiB,KAAKoe,SAASpa,KAAKhE,OAEvBA,KAAK+M,SAASX,QAAQ,eAGtBpM,KAAKuiB,qBACLviB,KAAK+M,SAASX,QAAQ,iBAE7B,CACD,kBAAAmW,GACIviB,KAAK+hB,aAAY,GAEjB,GADmB/hB,KAAKsf,gBACNtf,KAAK0f,aAAc,CACjC,GAAI1f,KAAK2f,sBAAwB,EAC7B,OAEJ3f,KAAK2f,sBACR,CAED,GADA3f,KAAKkN,OAAOqE,MAAM,qCAAuCvR,KAAKsf,gBAC1Dtf,KAAKsf,eAAgB,CACrB,IAAKtf,KAAK4f,YACN,MAAM,IAAI/f,MAAM,iBAEpBG,KAAKuhB,MAAMvhB,KAAK4f,aAAa,GACxBpd,OAAM,KACP8D,WAAWtG,KAAKuiB,mBAAmBzM,KAAK9V,MAAOA,KAAKiN,SAASmE,mBAAqB,IAAK,GAE9F,CACJ,CACD,sBAAAiP,CAAuBlhB,GACnB,IAAIqjB,EAEAA,EADe,iBAARrjB,EACEa,KAAKyiB,qBAAqBtjB,GAG1Ba,KAAK0iB,qBAAqBvjB,GAEnCa,KAAKwe,SACLxe,KAAKkN,OAAOsT,MAAM,MAAM3Z,KAAKC,UAAU0b,MAE3CxiB,KAAKgiB,kBAAkBQ,EAAOrjB,IAAKqjB,EAAOG,QAC7C,CACD,gBAAA9B,GACI,OAAOjN,GAAa7N,IAChB,IAAI6c,EACJ,MAAMC,EA7jBS,EAACC,EAAatX,KACrC,IAAIuX,EAAOD,EACX,MAAO,KACHC,IACa,IAATA,GACAvX,GACH,CACJ,EAsjBqBwX,CAAmB,GAAG,KAC5BJ,GACAA,IAEJ7c,GAAS,IAEb6c,EAAQ5iB,KAAK+gB,kBAAkBE,GACV,YAAbA,EAAI3jB,MAGS,aAAb2jB,EAAI3jB,KAFGulB,SAEX,GAGF,GACH,IAAO,0EACb,CACD,wBAAAnC,CAAyBzT,GACrB,IAAKA,EAASgW,iBAAiBC,IAC3B,MAAM,IAAIrjB,MAAM,oCAEpB,OAAO,IAAIyQ,EAAG1T,OAAOumB,OAAO,CAAE,EAAEnjB,KAAKiN,SAAU,CAAEsD,GAAItD,EAASgW,gBAAgBC,IAAK7R,kBAAmB,IAAMrR,KAAKkN,OAAO4S,UAAU,gBACrI,CACD,mBAAAa,CAAoB1T,GAChB,IAAKA,EAASgW,iBAAiBG,KAC3B,MAAM,IAAIvjB,MAAM,iDAEpB,OAAOoN,EAASgW,gBAAgBG,IACnC,CACD,aAAA3B,GAEI,GADAzhB,KAAK6e,gBAAiB,GACjB7e,KAAK2e,mBAAqB3e,KAAK4e,YAEhC,YADA5e,KAAKkN,OAAOgL,KAAK,iHAAiHlY,KAAKye,wCAAwCze,KAAK4e,4CAGxL5e,KAAK+e,wBAAwB3f,SAASwjB,GAAUA,MAChD5iB,KAAK+e,wBAA0B,GAC/B/e,KAAKJ,UAAYI,KAAK2e,iBACtB,MAAMuB,EAAyBlgB,KAAKJ,UAAUkO,mBAAmB9N,KAAKmgB,wBAAwBrK,KAAK9V,OAC7FogB,EAAiBpgB,KAAKJ,UAAUiO,UAAU7N,KAAKqgB,uBAAuBvK,KAAK9V,OAGjF,OAFAA,KAAK+e,wBAAwB7e,KAAKggB,GAClClgB,KAAK+e,wBAAwB7e,KAAKkgB,GAC3BpgB,KAAK4e,WACf,CACD,kBAAA+C,GACI3hB,KAAK+e,wBAAwB3f,SAASwjB,GAAUA,MAChD5iB,KAAK+e,wBAA0B,GAC/B/e,KAAKJ,UAAUmO,QAAQvL,OAAO8I,GAAUtL,KAAKkN,OAAOgL,KAAK,qBAAqBlY,KAAKJ,UAAUtC,uDAAuDuJ,KAAKC,UAAUwE,QACnKtL,KAAK2e,iBAAmB3e,KAAKye,kBAC7Bze,KAAK4e,YAAc5e,KAAK0e,aACxB1e,KAAK6e,gBAAiB,CACzB,CACD,oBAAA4D,CAAqBnV,GACjB,MAAMnO,EAAM0H,KAAKwc,MAAM/V,GAAS,CAACtQ,EAAKV,KAClC,GAAqB,iBAAVA,EACP,OAAOA,EAEX,GAAIA,EAAMoB,OAASsC,KAAKkf,WACpB,OAAO5iB,EAEX,IAAKA,EAAMgnB,WAAWtjB,KAAKmf,qBACvB,OAAO7iB,EAEX,GAAIA,EAAM8e,UAAU,EAAGpb,KAAKif,iBAAmBjf,KAAKgf,WAChD,OAAO1iB,EAEX,IACI,MAAMinB,EAAeC,SAASlnB,EAAM8e,UAAUpb,KAAKif,cAAe3iB,EAAMoB,QAAS,IACjF,OAAI+lB,MAAMF,GACCjnB,EAEJ,IAAIE,KAAK+mB,EACnB,CACD,MAAOG,GACH,OAAOpnB,CACV,KAEL,MAAO,CACH6C,MACAwjB,QAASxjB,EAAI/C,KAEpB,CACD,mBAAAglB,CAAoB9T,GAChB,MAAMqW,EAAYnnB,KAAKkO,UAAUpD,OACjC,IACI,MAAM0X,EAAahf,KAAKgf,WACxBxiB,KAAKkO,UAAUpD,OAAS,WACpB,OAAO0X,EAAahf,KAAKlC,SACzC,EAEY,OADe+I,KAAKC,UAAUwG,EAEjC,CACO,QACJ9Q,KAAKkO,UAAUpD,OAASqc,CAC3B,CACJ,CACD,oBAAAjB,CAAqBpV,GACjB,IAAKA,EAAQlR,KACT,MAAM,IAAIyD,MAAM,oCAEpB,MAAO,CACHV,IAAKmO,EACLqV,QAASrV,EAAQlR,KAExB,CACD,mBAAA8kB,CAAoB5T,GAChB,OAAOA,CACV,CACD,eAAMoU,CAAUla,EAAQqB,GACpB7I,KAAKkN,OAAO2D,KAAK,iBACjB7Q,KAAK4f,YAAcpY,EACdxH,KAAK4f,cACN5f,KAAK4f,YAAc,CAAEgE,SAAU,GAAIC,SAAU,KAEjD7jB,KAAKsf,gBAAiB,EACtB,MAAMwE,QAAuB9jB,KAAK+jB,gBAAgBvc,EAAQqB,GACpDmb,EAAW,CACb5nB,KAAM,QACNgW,SAAUpS,KAAKiN,SAASmF,SACxB0R,kBAEAtc,EAAOyc,YACPD,EAAS/G,WAAazV,EAAOyc,WAEjCjkB,KAAKyf,aAAezD,EAAc,SAAUhc,KAAMA,KAAKkN,OAAO4S,UAAU,iBAAkB,CACtF,UACA,QACA,2BAEJ,MAAMoE,EAAc,CAAE1G,YAAY,GAC9Bxd,KAAK0f,eACLwE,EAAYhT,cAAgBlR,KAAKiN,SAASmE,kBAC1C8S,EAAYC,WAAankB,KAAKiN,SAASoE,mBAE3C,IACI,MAAM+S,QAAmBpkB,KAAKqkB,gBAAgBrkB,KAAKyf,aAAcuE,EAAUE,EAAa1c,GAWxF,OAVAxH,KAAK0f,cAAe,EACpB1f,KAAKkN,OAAO2D,KAAK,gCAAkCuT,EAAWhb,SAC9DpJ,KAAKqJ,OAAS+a,EAAWhb,QACzBpJ,KAAKie,iBAAmBmG,EAAWE,kBACnCtkB,KAAKke,iBAAmBkG,EAAWG,kBAC/BH,EAAWrgB,UACX/D,KAAKge,MAAQoG,EAAWrgB,QAAQygB,aAChCxkB,KAAK6Q,KAAOuT,EAAWrgB,QAAQ8M,MAEnC7Q,KAAK+hB,aAAY,GACVqC,EAAWE,iBACrB,CACD,MAAOvY,GAEH,MADA/L,KAAKkN,OAAO5B,MAAM,kCAAoCS,EAAIuB,SAAWvB,EAAI5M,KAAO4M,EAAI4F,QAAU5F,GAAMA,GAC9FA,CACT,CACO,QACAvE,GAAQid,cAAgBjd,EAAOyc,WAC/Bzc,EAAOid,aAAajd,EAAOyc,UAAW,KAE7C,CACJ,CACD,qBAAMI,CAAgB5E,EAAcuE,EAAUE,EAAa1c,GACvD,IAAI4c,EACJ,OAAa,CACT,MAAMjlB,QAAYsgB,EAAavX,KAAK8b,OAAU7f,EAAW+f,GACzD,GAAiB,2BAAb/kB,EAAI/C,KAUH,IAAiB,YAAb+C,EAAI/C,KAAoB,CAC7BgoB,EAAajlB,EACb,KACH,CACI,KAAiB,UAAbA,EAAI/C,KACH,IAAIyD,MAAM,0BAA4BV,EAAIwS,QAG1C,IAAI9R,MAAM,kDAAoDV,EAAI/C,KAC3E,CAnB0C,CACvC,MAAM4hB,EAAQ0G,OAAO1J,KAAK7b,EAAI2kB,eAAe9F,MAAO,UAChDxW,EAAOid,cAAgBjd,EAAOyc,YAC9BD,EAASF,eAAe9F,aACbxW,EAAOid,aAAajd,EAAOyc,UAAWjG,IACxCzP,KACAvQ,SAAS,WAEtBgmB,EAAS/G,WAAazV,EAAOyc,SAChC,CAWJ,CACD,OAAOG,CACV,CACD,qBAAML,CAAgBvc,EAAQqB,GAC1B,MAAMib,EAAiB,CAAA,EAEvB,GADA9jB,KAAKme,aAAe3W,EAAO2W,aACvB3W,EAAO2W,aAAc,CACrB,GAAItV,EACA,IACIrB,EAAO2W,mBAAqBne,KAAK2kB,eACpC,CACD,MAAOjgB,GACH1E,KAAKkN,OAAOgL,KAAK,4CAA4CxT,GAAG4I,SAAW5I,IAC9E,CAELof,EAAec,OAAS,gBACxBd,EAAe9F,MAAQxW,EAAO2W,aAC9Bne,KAAKme,aAAe3W,EAAO2W,YAC9B,MACI,GAAwB,SAApB3W,EAAOqd,SAAqB,CAGjC,GAFAf,EAAegB,SAAW,MAC1BhB,EAAec,OAAS,gBACpBpd,EAAOid,eAAgBjd,EAAOyc,UAO9B,MAAM,IAAIpkB,MAAM,uBANhBikB,EAAe9F,aACJxW,EAAOid,aAAajd,EAAOyc,UAAW,OACxC1V,KACAvQ,SAAS,SAKzB,MACI,GAAIwJ,EAAOwW,MACZ8F,EAAec,OAAS,eACxBd,EAAe9F,MAAQxW,EAAOwW,WAE7B,GAAIxW,EAAOoc,SACZE,EAAec,OAAS,SACxBd,EAAevC,MAAQ/Z,EAAOoc,SAC9BE,EAAeiB,OAASvd,EAAOqc,aAE9B,KAAIrc,EAAOsd,SAKZ,MAAM,IAAIjlB,MAAM,uBAAyBgH,KAAKC,UAAUU,IAJxDsc,EAAegB,SAAWtd,EAAOsd,SACjChB,EAAekB,gBAAkBxd,EAAOwd,eAI3C,CACD,OAAOlB,CACV,CACD,gBAAMjC,GACF7hB,KAAKkN,OAAOqE,MAAM,kBAClBvR,KAAKsf,gBAAiB,EAClBtf,KAAKuf,WACLtL,aAAajU,KAAKuf,WAEtB,MAAM0F,EAAWjlB,KAAKwf,SAASpY,KAAKM,IAChCA,EAAQkW,OAAO,UAEb9X,QAAQof,IAAID,EACrB,CACD,aAAAN,GACI,GAAsB,oBAAXvf,OAAwB,CAC/B,MAAMO,EAAWP,OAAOO,SACxB,GAAIA,EACA,OAAOA,EAASwf,YAEvB,CACD,OAAOrf,QAAQ6H,OAAO,IAAI9N,MAAM,qBACnC,CACD,IAAAygB,GACStgB,KAAKsf,iBAGNtf,KAAKqf,aACLrf,KAAKkI,KAAK,CAAE9L,KAAM,SAEtB4D,KAAKuf,UAAYjZ,YAAW,KACxBtG,KAAKsgB,MAAM,GACZ,KACN,EAGL,MAAM8E,EAAQ,CAAC,QAAS,QAAS,OAAQ,OAAQ,QAAS,OAC1D,IAAAC,EAAA,MAAMC,EACFhoB,KACAqC,OACAmP,eACAA,yBAA2B,oBAC3BA,gBACAtR,KACA+nB,WAAa,GACbC,cACAC,cACAC,eACAC,oBACAC,MAAQva,QACRwa,aAAc,EACd,WAAAtpB,CAAYe,EAAMqC,EAAQimB,GACtB5lB,KAAK1C,KAAOA,EACZ0C,KAAKL,OAASA,EACdK,KAAK1C,KAAOA,EAER0C,KAAKxC,KADLmC,EACY,GAAGA,EAAOnC,QAAQF,IAGlBA,EAEhB0C,KAAK0lB,eAAiB,IAAI1lB,KAAKxC,QAC/BwC,KAAK2lB,qBAAuBC,EACxBA,IACA5lB,KAAK4lB,MAAQA,EACb5lB,KAAK6lB,aAAc,EAE1B,CACD,SAAA/F,CAAUxiB,GACN,MAAMwoB,EAAc9lB,KAAKulB,WAAWljB,QAAQyd,GACjCA,EAAUxiB,OAASA,IAC3B,GACH,QAAoB6G,IAAhB2hB,EACA,OAAOA,EAEXlpB,OAAOC,KAAKmD,MAAMZ,SAASpC,IACvB,GAAIA,IAAQM,EACR,MAAM,IAAIuC,MAAM,uCACnB,IAEL,MAAMqT,EAAM,IAAIoS,EAAOhoB,EAAM0C,KAAMA,KAAK6lB,YAAc7lB,KAAK4lB,WAAQzhB,GAEnE,OADAnE,KAAKulB,WAAWrlB,KAAKgT,GACdA,CACV,CACD,YAAA6S,CAAaC,GAIT,OAHIA,IACAhmB,KAAKylB,cAAgBO,GAElBhmB,KAAKylB,eAAiBzlB,KAAKL,QAAQomB,cAC7C,CACD,YAAAE,CAAaD,GAIT,OAHIA,IACAhmB,KAAKwlB,cAAgBQ,GAElBhmB,KAAKwlB,eAAiBxlB,KAAKL,QAAQsmB,cAC7C,CACD,GAAA5D,CAAI/U,EAAS0Y,EAAO1a,GAChBtL,KAAKkmB,eAAeF,GAAS,OAAQ1Y,EAAShC,EACjD,CACD,KAAAkV,CAAMlT,GACFtN,KAAKqiB,IAAI/U,EAAS,QACrB,CACD,KAAAiE,CAAMjE,GACFtN,KAAKqiB,IAAI/U,EAAS,QACrB,CACD,IAAAuD,CAAKvD,GACDtN,KAAKqiB,IAAI/U,EAAS,OACrB,CACD,IAAA4K,CAAK5K,GACDtN,KAAKqiB,IAAI/U,EAAS,OACrB,CACD,KAAAhC,CAAMgC,EAASvB,GACX/L,KAAKqiB,IAAI/U,EAAS,QACrB,CACD,UAAA2S,CAAW+F,EAAOG,GAGd,OAFiBf,EAAM/R,QAAQ2S,IACRZ,EAAM/R,QAAQ8S,GAAenmB,KAAKimB,gBAAkB,QAE9E,CACD,cAAAC,CAAeF,EAAO1Y,EAAShC,GAC3B,MAAM8a,EAAapmB,KAAK0lB,eACxB,GAAc,UAAVM,IAAsB1a,EAAO,CAC7B,MAAM5G,EAAI,IAAI7E,MACV6E,EAAE0G,QACFkC,EACIA,EACI,KACA5I,EAAE0G,MACGib,MAAM,MACN9mB,MAAM,GACN9B,KAAK,MAEzB,CACD,GAAIuC,KAAKigB,WAAW+F,EAAOhmB,KAAK+lB,gBAAiB,CAC7C,MAAMO,EAAUhB,EAAOiB,QACvB,GAAID,EACA,IACQA,EAAQE,QAAQ,CAAElpB,KAAMgoB,EAAOmB,oBAAqB/oB,OAAS,GAC7D4oB,EAAQI,OAAOpB,EAAOmB,kBAAmB,CACrCtnB,IAAK,GAAGmO,IACRJ,OAAQkZ,EACRJ,SAGX,CACD,MACC,CAER,CACD,GAAIhmB,KAAKigB,WAAW+F,GAAQ,CACxB,IAAIW,EAAS,GACb,GAAI3mB,KAAK2lB,oBAAqB,CAC1B,MAAMiB,EAAO,IAAIpqB,KAEjBmqB,EAAS,IADI,GAAGC,EAAKC,cAAcD,EAAKE,gBAAgBF,EAAKG,gBAAgBH,EAAKI,yBAC3DhB,KAC1B,CACD,MAAMiB,EAAU,GAAGN,IAASP,MAAe9Y,IAC3C,OAAQ0Y,GACJ,IAAK,QACDhmB,KAAK4lB,MAAMrU,MAAM0V,GACjB,MACJ,IAAK,QACGjnB,KAAK4lB,MAAMrU,MACXvR,KAAK4lB,MAAMrU,MAAM0V,GAGjBjnB,KAAK4lB,MAAMvD,IAAI4E,GAEnB,MACJ,IAAK,OACDjnB,KAAK4lB,MAAM/U,KAAKoW,GAChB,MACJ,IAAK,OACDjnB,KAAK4lB,MAAM1N,KAAK+O,GAChB,MACJ,IAAK,QACDjnB,KAAK4lB,MAAMta,MAAM2b,EAAS3b,GAGrC,CACJ,GAGL,MAAM4b,EAA4B,iBAC5BC,EAA8B,UAC9BC,EAAgC,YAChCC,EAA6B,kBAC7BC,EAA2B,gBAC3BC,EAA+B,oBAC/BC,EAAgC,qBAChCC,EAAiC,sBACjCC,EAA6B,kBAC7BC,EAA+B,oBAC/BC,EAA4B,iBAC5BC,EAA6B,kBAC7BC,GAA6B,SAE7BC,GAA2B,CAC7B,QAAIzqB,GACA,MAAO,SACV,EACD,SAAI0V,GACA,MAAO,CACHkU,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEP,GAGL,IAAIE,GAAU,QA+Ld,MAAMC,GACF3qB,KACA4qB,UACA7qB,QACA8qB,YACAC,eACAC,gBAAkB,CAAA,EAClBC,WACAC,yBACAC,oBACA,WAAAjsB,CAAY2rB,EAAW5qB,EAAM6qB,EAAaG,GACtCtoB,KAAKkoB,UAAYA,EACjBloB,KAAK1C,KAAOA,EACZ0C,KAAKmoB,YAAcA,EACnBnoB,KAAKsoB,WAAaA,EAClBtoB,KAAK3C,QAAU,EAClB,CACD,YAAAorB,GACI,OAAO7rB,OAAOC,KAAKmD,KAAKqoB,iBAAiB3qB,OAAS,CACrD,CACD,QAAAwF,GACI,OAAIlD,KAAKmoB,aAAenoB,KAAKyoB,eAClB,EAEPzoB,KAAKmoB,YACE,EAEPnoB,KAAKyoB,eACE,EAEJ,CACV,EAGL,IAAIC,GAAmB,CAACC,QAAS,CAAA,IAYhC,SAAUC,EAAQD,GAElB,IAGIE,EAAiB,4BAGjBC,EAAmB,iBAGnBC,EAAU,qBAEVC,EAAU,mBACVC,EAAU,gBAEVC,EAAU,oBACVC,EAAS,6BACTC,EAAS,eACTC,EAAY,kBACZC,EAAY,kBACZC,EAAa,mBACbC,EAAY,kBACZC,EAAS,eACTC,EAAY,kBACZC,EAAY,kBACZC,EAAa,mBAEbC,EAAiB,uBACjBC,EAAc,oBACdC,EAAa,wBACbC,EAAa,wBACbC,EAAU,qBACVC,EAAW,sBACXC,EAAW,sBACXC,EAAW,sBACXC,EAAkB,6BAClBC,EAAY,uBACZC,EAAY,uBASZC,EAAU,OAGVC,EAAe,8BAGfC,EAAW,mBAGXC,EAAgB,CAAA,EACpBA,EAAc5B,GAAW4B,EA7CV,kBA8CfA,EAAcd,GAAkBc,EAAcb,GAC9Ca,EAAc3B,GAAW2B,EAAc1B,GACvC0B,EAAcZ,GAAcY,EAAcX,GAC1CW,EAAcV,GAAWU,EAAcT,GACvCS,EAAcR,GAAYQ,EAAcvB,GACxCuB,EAActB,GAAasB,EAAcrB,GACzCqB,EAAcnB,GAAamB,EAAclB,GACzCkB,EAAcjB,GAAaiB,EAAchB,GACzCgB,EAAcP,GAAYO,EAAcN,GACxCM,EAAcL,GAAaK,EAAcJ,IAAa,EACtDI,EArDe,kBAqDWA,EAAczB,GACxCyB,EAAcf,IAAc,EAG5B,IAAIgB,EAAsC,iBAAlBzgB,GAA8BA,GAAkBA,EAAevN,SAAWA,QAAUuN,EAGxG0gB,EAA0B,iBAARvgB,MAAoBA,MAAQA,KAAK1N,SAAWA,QAAU0N,KAGxE3L,EAAOisB,GAAcC,GAAYC,SAAS,cAATA,GAGjCC,EAAcpC,IAAYA,EAAQqC,UAAYrC,EAG9CsC,EAAaF,GAAuCnC,IAAWA,EAAOoC,UAAYpC,EAGlFsC,EAAgBD,GAAcA,EAAWtC,UAAYoC,EAUzD,SAASI,EAAY/jB,EAAKgkB,GAGxB,OADAhkB,EAAIikB,IAAID,EAAK,GAAIA,EAAK,IACfhkB,CACR,CAUD,SAASkkB,EAAYD,EAAK/uB,GAGxB,OADA+uB,EAAI9f,IAAIjP,GACD+uB,CACR,CAsDD,SAASE,EAAYC,EAAOC,EAAUC,EAAaC,GACjD,IAAIxf,GAAS,EACTzO,EAAS8tB,EAAQA,EAAM9tB,OAAS,EAKpC,IAHIiuB,GAAajuB,IACfguB,EAAcF,IAAQrf,MAEfA,EAAQzO,GACfguB,EAAcD,EAASC,EAAaF,EAAMrf,GAAQA,EAAOqf,GAE3D,OAAOE,CACR,CAwCD,SAASE,EAAatvB,GAGpB,IAAIsH,GAAS,EACb,GAAa,MAATtH,GAA0C,mBAAlBA,EAAM0B,SAChC,IACE4F,KAAYtH,EAAQ,GAC3B,CAAO,MAAOoI,GAAK,CAEhB,OAAOd,CACR,CASD,SAASioB,EAAWzkB,GAClB,IAAI+E,GAAS,EACTvI,EAAStF,MAAM8I,EAAIqM,MAKvB,OAHArM,EAAIhI,SAAQ,SAAS9C,EAAOU,GAC1B4G,IAASuI,GAAS,CAACnP,EAAKV,EAC7B,IACUsH,CACR,CAUD,SAASkoB,EAAQC,EAAMC,GACrB,OAAO,SAASC,GACd,OAAOF,EAAKC,EAAUC,GAC3B,CACE,CASD,SAASC,EAAWb,GAClB,IAAIlf,GAAS,EACTvI,EAAStF,MAAM+sB,EAAI5X,MAKvB,OAHA4X,EAAIjsB,SAAQ,SAAS9C,GACnBsH,IAASuI,GAAS7P,CACvB,IACUsH,CACR,CAGD,IASMuoB,EATFC,EAAa9tB,MAAMoM,UACnB2hB,EAAYvB,SAASpgB,UACrB4hB,EAAc1vB,OAAO8N,UAGrB6hB,EAAa5tB,EAAK,sBAGlB6tB,GACEL,EAAM,SAASM,KAAKF,GAAcA,EAAW1vB,MAAQ0vB,EAAW1vB,KAAK6vB,UAAY,KACvE,iBAAmBP,EAAO,GAItCQ,EAAeN,EAAUruB,SAGzB2M,GAAiB2hB,EAAY3hB,eAO7BiiB,GAAiBN,EAAYtuB,SAG7B6uB,GAAaC,OAAO,IACtBH,EAAa/hB,KAAKD,IAAgBoiB,QAzQjB,sBAyQuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5ErI,GAASwG,EAAgBvsB,EAAK+lB,YAASvgB,EACvC6oB,GAASruB,EAAKquB,OACdC,GAAatuB,EAAKsuB,WAClBC,GAAepB,EAAQlvB,OAAOuwB,eAAgBvwB,QAC9CwwB,GAAexwB,OAAOywB,OACtBC,GAAuBhB,EAAYgB,qBACnCC,GAASnB,EAAWmB,OAGpBC,GAAmB5wB,OAAO6wB,sBAC1BC,GAAiBhJ,GAASA,GAAOiJ,cAAWxpB,EAC5CypB,GAAa9B,EAAQlvB,OAAOC,KAAMD,QAGlCixB,GAAWC,GAAUnvB,EAAM,YAC3BovB,GAAMD,GAAUnvB,EAAM,OACtBmH,GAAUgoB,GAAUnvB,EAAM,WAC1Bmc,GAAMgT,GAAUnvB,EAAM,OACtBqvB,GAAUF,GAAUnvB,EAAM,WAC1BsvB,GAAeH,GAAUlxB,OAAQ,UAGjCsxB,GAAqBC,GAASN,IAC9BO,GAAgBD,GAASJ,IACzBM,GAAoBF,GAASroB,IAC7BwoB,GAAgBH,GAASrT,IACzByT,GAAoBJ,GAASH,IAG7BQ,GAAcxB,GAASA,GAAOtiB,eAAYvG,EAC1CsqB,GAAgBD,GAAcA,GAAYE,aAAUvqB,EASxD,SAASwqB,GAAKC,GACZ,IAAIziB,GAAS,EACTzO,EAASkxB,EAAUA,EAAQlxB,OAAS,EAGxC,IADAsC,KAAKyM,UACIN,EAAQzO,GAAQ,CACvB,IAAIwf,EAAQ0R,EAAQziB,GACpBnM,KAAKqrB,IAAInO,EAAM,GAAIA,EAAM,GAC1B,CACF,CAyFD,SAAS2R,GAAUD,GACjB,IAAIziB,GAAS,EACTzO,EAASkxB,EAAUA,EAAQlxB,OAAS,EAGxC,IADAsC,KAAKyM,UACIN,EAAQzO,GAAQ,CACvB,IAAIwf,EAAQ0R,EAAQziB,GACpBnM,KAAKqrB,IAAInO,EAAM,GAAIA,EAAM,GAC1B,CACF,CAuGD,SAAS4R,GAASF,GAChB,IAAIziB,GAAS,EACTzO,EAASkxB,EAAUA,EAAQlxB,OAAS,EAGxC,IADAsC,KAAKyM,UACIN,EAAQzO,GAAQ,CACvB,IAAIwf,EAAQ0R,EAAQziB,GACpBnM,KAAKqrB,IAAInO,EAAM,GAAIA,EAAM,GAC1B,CACF,CAqFD,SAAS6R,GAAMH,GACb5uB,KAAKgvB,SAAW,IAAIH,GAAUD,EAC/B,CA2FD,SAASK,GAAc3yB,EAAO4yB,GAG5B,IAAItrB,EAAUrF,GAAQjC,IAsrBxB,SAAqBA,GAEnB,OAmFF,SAA2BA,GACzB,OAmIF,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,CAC1B,CArIQ6yB,CAAa7yB,IAAU8yB,GAAY9yB,EAC3C,CArFQ+yB,CAAkB/yB,IAAUqO,GAAeC,KAAKtO,EAAO,aAC1DgxB,GAAqB1iB,KAAKtO,EAAO,WAAaswB,GAAehiB,KAAKtO,IAAUysB,EACjF,CA1rBiCuG,CAAYhzB,GAljB9C,SAAmBizB,EAAG9D,GAIpB,IAHA,IAAItf,GAAS,EACTvI,EAAStF,MAAMixB,KAEVpjB,EAAQojB,GACf3rB,EAAOuI,GAASsf,EAAStf,GAE3B,OAAOvI,CACR,CA2iBK4rB,CAAUlzB,EAAMoB,OAAQ+xB,QACxB,GAEA/xB,EAASkG,EAAOlG,OAChBgyB,IAAgBhyB,EAEpB,IAAK,IAAIV,KAAOV,GACT4yB,IAAavkB,GAAeC,KAAKtO,EAAOU,IACvC0yB,IAAuB,UAAP1yB,GAAmB2yB,GAAQ3yB,EAAKU,KACpDkG,EAAO1D,KAAKlD,GAGhB,OAAO4G,CACR,CAYD,SAASgsB,GAAYC,EAAQ7yB,EAAKV,GAChC,IAAIwzB,EAAWD,EAAO7yB,GAChB2N,GAAeC,KAAKilB,EAAQ7yB,IAAQ+yB,GAAGD,EAAUxzB,UACxC6H,IAAV7H,GAAyBU,KAAO6yB,KACnCA,EAAO7yB,GAAOV,EAEjB,CAUD,SAAS0zB,GAAaxE,EAAOxuB,GAE3B,IADA,IAAIU,EAAS8tB,EAAM9tB,OACZA,KACL,GAAIqyB,GAAGvE,EAAM9tB,GAAQ,GAAIV,GACvB,OAAOU,EAGX,OAAQ,CACT,CA6BD,SAASuyB,GAAU3zB,EAAO4zB,EAAQC,EAAQC,EAAYpzB,EAAK6yB,EAAQzkB,GACjE,IAAIxH,EAIJ,GAHIwsB,IACFxsB,EAASisB,EAASO,EAAW9zB,EAAOU,EAAK6yB,EAAQzkB,GAASglB,EAAW9zB,SAExD6H,IAAXP,EACF,OAAOA,EAET,IAAKysB,GAAS/zB,GACZ,OAAOA,EAET,IAAIg0B,EAAQ/xB,GAAQjC,GACpB,GAAIg0B,GAEF,GADA1sB,EA2XJ,SAAwB4nB,GACtB,IAAI9tB,EAAS8tB,EAAM9tB,OACfkG,EAAS4nB,EAAMjvB,YAAYmB,GAG3BA,GAA6B,iBAAZ8tB,EAAM,IAAkB7gB,GAAeC,KAAK4gB,EAAO,WACtE5nB,EAAOuI,MAAQqf,EAAMrf,MACrBvI,EAAO2sB,MAAQ/E,EAAM+E,OAEvB,OAAO3sB,CACR,CArYY4sB,CAAel0B,IACnB4zB,EACH,OA6ON,SAAmBjX,EAAQuS,GACzB,IAAIrf,GAAS,EACTzO,EAASub,EAAOvb,OAEpB8tB,IAAUA,EAAQltB,MAAMZ,IACxB,OAASyO,EAAQzO,GACf8tB,EAAMrf,GAAS8M,EAAO9M,GAExB,OAAOqf,CACR,CAtPYiF,CAAUn0B,EAAOsH,OAErB,CACL,IAAIyZ,EAAMqT,GAAOp0B,GACbq0B,EAAStT,GAAO6L,GAAW7L,GAAO8L,EAEtC,GAAIwE,GAASrxB,GACX,OA0HN,SAAqBs0B,EAAQV,GAC3B,GAAIA,EACF,OAAOU,EAAOrxB,QAEhB,IAAIqE,EAAS,IAAIgtB,EAAOr0B,YAAYq0B,EAAOlzB,QAE3C,OADAkzB,EAAOC,KAAKjtB,GACLA,CACR,CAjIYktB,CAAYx0B,EAAO4zB,GAE5B,GAAI7S,GAAOiM,GAAajM,GAAO0L,GAAY4H,IAAWd,EAAS,CAC7D,GAAIjE,EAAatvB,GACf,OAAOuzB,EAASvzB,EAAQ,GAG1B,GADAsH,EA+XN,SAAyBisB,GACvB,MAAqC,mBAAtBA,EAAOtzB,aAA8Bw0B,GAAYlB,GAE5D,IAzVcmB,EAwVH9D,GAAa2C,GAvVrBQ,GAASW,GAAS5D,GAAa4D,GAAS,CAAA,GADjD,IAAoBA,CA0VnB,CAnYcC,CAAgBN,EAAS,CAAE,EAAGr0B,IAClC4zB,EACH,OA6QR,SAAqBjX,EAAQ4W,GAC3B,OAAOqB,GAAWjY,EAAQkY,GAAWlY,GAAS4W,EAC/C,CA/QcuB,CAAY90B,EAhD3B,SAAoBuzB,EAAQ5W,GAC1B,OAAO4W,GAAUqB,GAAWjY,EAAQpc,GAAKoc,GAAS4W,EACnD,CA8CiCwB,CAAWztB,EAAQtH,GAEtD,KAAY,CACL,IAAKquB,EAActN,GACjB,OAAOwS,EAASvzB,EAAQ,GAE1BsH,EA0YN,SAAwBisB,EAAQxS,EAAKiU,EAAWpB,GAC9C,IAAIqB,EAAO1B,EAAOtzB,YAClB,OAAQ8gB,GACN,KAAKwM,EACH,OAAO2H,GAAiB3B,GAE1B,KAAK7G,EACL,KAAKC,EACH,OAAO,IAAIsI,GAAM1B,GAEnB,KAAK/F,EACH,OA3QN,SAAuB2H,EAAUvB,GAC/B,IAAIU,EAASV,EAASsB,GAAiBC,EAASb,QAAUa,EAASb,OACnE,OAAO,IAAIa,EAASl1B,YAAYq0B,EAAQa,EAASC,WAAYD,EAASE,WACvE,CAwQYC,CAAc/B,EAAQK,GAE/B,KAAKnG,EAAY,KAAKC,EACtB,KAAKC,EAAS,KAAKC,EAAU,KAAKC,EAClC,KAAKC,EAAU,KAAKC,EAAiB,KAAKC,EAAW,KAAKC,EACxD,OA/MN,SAAyBsH,EAAY3B,GACnC,IAAIU,EAASV,EAASsB,GAAiBK,EAAWjB,QAAUiB,EAAWjB,OACvE,OAAO,IAAIiB,EAAWt1B,YAAYq0B,EAAQiB,EAAWH,WAAYG,EAAWn0B,OAC7E,CA4MYo0B,CAAgBjC,EAAQK,GAEjC,KAAK9G,EACH,OArQN,SAAkBhiB,EAAK8oB,EAAQoB,GAC7B,IAAI9F,EAAQ0E,EAASoB,EAAUzF,EAAWzkB,IAAM,GAAQykB,EAAWzkB,GACnE,OAAOmkB,EAAYC,EAAOL,EAAa,IAAI/jB,EAAI7K,YAChD,CAkQYw1B,CAASlC,EAAQK,EAAQoB,GAElC,KAAKjI,EACL,KAAKK,EACH,OAAO,IAAI6H,EAAK1B,GAElB,KAAKrG,EACH,OAhQN,SAAqBwI,GACnB,IAAIpuB,EAAS,IAAIouB,EAAOz1B,YAAYy1B,EAAO/Y,OAAQuR,EAAQiC,KAAKuF,IAEhE,OADApuB,EAAOquB,UAAYD,EAAOC,UACnBruB,CACR,CA4PYsuB,CAAYrC,GAErB,KAAKpG,EACH,OApPN,SAAkB4B,EAAK6E,EAAQoB,GAC7B,IAAI9F,EAAQ0E,EAASoB,EAAUpF,EAAWb,IAAM,GAAQa,EAAWb,GACnE,OAAOE,EAAYC,EAAOF,EAAa,IAAID,EAAI9uB,YAChD,CAiPY41B,CAAStC,EAAQK,EAAQoB,GAElC,KAAK3H,EACH,OA3OeyI,EA2OIvC,EA1OhBpB,GAAgB7xB,OAAO6xB,GAAc7jB,KAAKwnB,IAAW,GAD9D,IAAqBA,CA6OpB,CA5acC,CAAe/1B,EAAO+gB,EAAK4S,GAAWC,EAChD,CACF,CAED9kB,IAAUA,EAAQ,IAAI2jB,IACtB,IAAIuD,EAAUlnB,EAAMmnB,IAAIj2B,GACxB,GAAIg2B,EACF,OAAOA,EAIT,GAFAlnB,EAAMigB,IAAI/uB,EAAOsH,IAEZ0sB,EACH,IAAIkC,EAAQrC,EAsQhB,SAAoBN,GAClB,OAnOF,SAAwBA,EAAQ4C,EAAUC,GACxC,IAAI9uB,EAAS6uB,EAAS5C,GACtB,OAAOtxB,GAAQsxB,GAAUjsB,EApwB3B,SAAmB4nB,EAAO7uB,GAKxB,IAJA,IAAIwP,GAAS,EACTzO,EAASf,EAAOe,OAChBi1B,EAASnH,EAAM9tB,SAEVyO,EAAQzO,GACf8tB,EAAMmH,EAASxmB,GAASxP,EAAOwP,GAEjC,OAAOqf,CACR,CA2vBmCoH,CAAUhvB,EAAQ8uB,EAAY7C,GACjE,CAgOQgD,CAAehD,EAAQhzB,GAAMs0B,GACrC,CAxQwB2B,CAAWx2B,GAASO,GAAKP,GAUhD,OA5vBF,SAAmBkvB,EAAOC,GAIxB,IAHA,IAAItf,GAAS,EACTzO,EAAS8tB,EAAQA,EAAM9tB,OAAS,IAE3ByO,EAAQzO,IAC8B,IAAzC+tB,EAASD,EAAMrf,GAAQA,EAAOqf,KAKrC,CA0uBCuH,CAAUP,GAASl2B,GAAO,SAAS02B,EAAUh2B,GACvCw1B,IAEFQ,EAAW12B,EADXU,EAAMg2B,IAIRpD,GAAYhsB,EAAQ5G,EAAKizB,GAAU+C,EAAU9C,EAAQC,EAAQC,EAAYpzB,EAAKV,EAAO8O,GAC1F,IACUxH,CACR,CAiDD,SAASqvB,GAAa32B,GACpB,SAAK+zB,GAAS/zB,KAyYEyvB,EAzYiBzvB,EA0YxBkwB,GAAeA,KAAcT,MAvYvBmH,GAAW52B,IAAUsvB,EAAatvB,GAAUuwB,GAAapC,GACzD0I,KAAKhF,GAAS7xB,IAqY/B,IAAkByvB,CApYjB,CA8CD,SAASyF,GAAiB4B,GACxB,IAAIxvB,EAAS,IAAIwvB,EAAY72B,YAAY62B,EAAYzB,YAErD,OADA,IAAI1E,GAAWrpB,GAAQynB,IAAI,IAAI4B,GAAWmG,IACnCxvB,CACR,CA6GD,SAASstB,GAAWjY,EAAQuZ,EAAO3C,EAAQO,GACzCP,IAAWA,EAAS,CAAA,GAKpB,IAHA,IAAI1jB,GAAS,EACTzO,EAAS80B,EAAM90B,SAEVyO,EAAQzO,GAAQ,CACvB,IAAIV,EAAMw1B,EAAMrmB,GAEZ9L,EAAW+vB,EACXA,EAAWP,EAAO7yB,GAAMic,EAAOjc,GAAMA,EAAK6yB,EAAQ5W,QAClD9U,EAEJyrB,GAAYC,EAAQ7yB,OAAkBmH,IAAb9D,EAAyB4Y,EAAOjc,GAAOqD,EACjE,CACD,OAAOwvB,CACR,CAiCD,SAASwD,GAAWjsB,EAAKpK,GACvB,IAqKiBV,EACbF,EAtKAmS,EAAOnH,EAAI4nB,SACf,OAsKgB,WADZ5yB,SADaE,EApKAU,KAsKmB,UAARZ,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAVE,EACU,OAAVA,GAvKDiS,EAAmB,iBAAPvR,EAAkB,SAAW,QACzCuR,EAAKnH,GACV,CAUD,SAAS0mB,GAAU+B,EAAQ7yB,GACzB,IAAIV,EAj8BN,SAAkBuzB,EAAQ7yB,GACxB,OAAiB,MAAV6yB,OAAiB1rB,EAAY0rB,EAAO7yB,EAC5C,CA+7Bas2B,CAASzD,EAAQ7yB,GAC7B,OAAOi2B,GAAa32B,GAASA,OAAQ6H,CACtC,CA9tBDwqB,GAAKjkB,UAAU+B,MAnEf,WACEzM,KAAKgvB,SAAWf,GAAeA,GAAa,MAAQ,CAAA,CACrD,EAkEDU,GAAKjkB,UAAkB,OAtDvB,SAAoB1N,GAClB,OAAOgD,KAAK+R,IAAI/U,WAAegD,KAAKgvB,SAAShyB,EAC9C,EAqDD2xB,GAAKjkB,UAAU6nB,IA1Cf,SAAiBv1B,GACf,IAAIuR,EAAOvO,KAAKgvB,SAChB,GAAIf,GAAc,CAChB,IAAIrqB,EAAS2K,EAAKvR,GAClB,OAAO4G,IAAWilB,OAAiB1kB,EAAYP,CAChD,CACD,OAAO+G,GAAeC,KAAK2D,EAAMvR,GAAOuR,EAAKvR,QAAOmH,CACrD,EAoCDwqB,GAAKjkB,UAAUqH,IAzBf,SAAiB/U,GACf,IAAIuR,EAAOvO,KAAKgvB,SAChB,OAAOf,QAA6B9pB,IAAdoK,EAAKvR,GAAqB2N,GAAeC,KAAK2D,EAAMvR,EAC3E,EAuBD2xB,GAAKjkB,UAAU2gB,IAXf,SAAiBruB,EAAKV,GAGpB,OAFW0D,KAAKgvB,SACXhyB,GAAQixB,SAA0B9pB,IAAV7H,EAAuBusB,EAAiBvsB,EAC9D0D,IACR,EAmHD6uB,GAAUnkB,UAAU+B,MAjFpB,WACEzM,KAAKgvB,SAAW,EACjB,EAgFDH,GAAUnkB,UAAkB,OArE5B,SAAyB1N,GACvB,IAAIuR,EAAOvO,KAAKgvB,SACZ7iB,EAAQ6jB,GAAazhB,EAAMvR,GAE/B,QAAImP,EAAQ,KAIRA,GADYoC,EAAK7Q,OAAS,EAE5B6Q,EAAKglB,MAELhG,GAAO3iB,KAAK2D,EAAMpC,EAAO,IAEpB,EACR,EAwDD0iB,GAAUnkB,UAAU6nB,IA7CpB,SAAsBv1B,GACpB,IAAIuR,EAAOvO,KAAKgvB,SACZ7iB,EAAQ6jB,GAAazhB,EAAMvR,GAE/B,OAAOmP,EAAQ,OAAIhI,EAAYoK,EAAKpC,GAAO,EAC5C,EAyCD0iB,GAAUnkB,UAAUqH,IA9BpB,SAAsB/U,GACpB,OAAOgzB,GAAahwB,KAAKgvB,SAAUhyB,IAAQ,CAC5C,EA6BD6xB,GAAUnkB,UAAU2gB,IAjBpB,SAAsBruB,EAAKV,GACzB,IAAIiS,EAAOvO,KAAKgvB,SACZ7iB,EAAQ6jB,GAAazhB,EAAMvR,GAO/B,OALImP,EAAQ,EACVoC,EAAKrO,KAAK,CAAClD,EAAKV,IAEhBiS,EAAKpC,GAAO,GAAK7P,EAEZ0D,IACR,EAiGD8uB,GAASpkB,UAAU+B,MA/DnB,WACEzM,KAAKgvB,SAAW,CACdwE,KAAQ,IAAI7E,GACZvnB,IAAO,IAAK2mB,IAAOc,IACnB4E,OAAU,IAAI9E,GAEjB,EA0DDG,GAASpkB,UAAkB,OA/C3B,SAAwB1N,GACtB,OAAOq2B,GAAWrzB,KAAMhD,GAAa,OAAEA,EACxC,EA8CD8xB,GAASpkB,UAAU6nB,IAnCnB,SAAqBv1B,GACnB,OAAOq2B,GAAWrzB,KAAMhD,GAAKu1B,IAAIv1B,EAClC,EAkCD8xB,GAASpkB,UAAUqH,IAvBnB,SAAqB/U,GACnB,OAAOq2B,GAAWrzB,KAAMhD,GAAK+U,IAAI/U,EAClC,EAsBD8xB,GAASpkB,UAAU2gB,IAVnB,SAAqBruB,EAAKV,GAExB,OADA+2B,GAAWrzB,KAAMhD,GAAKquB,IAAIruB,EAAKV,GACxB0D,IACR,EA+FD+uB,GAAMrkB,UAAU+B,MApEhB,WACEzM,KAAKgvB,SAAW,IAAIH,EACrB,EAmEDE,GAAMrkB,UAAkB,OAxDxB,SAAqB1N,GACnB,OAAOgD,KAAKgvB,SAAiB,OAAEhyB,EAChC,EAuDD+xB,GAAMrkB,UAAU6nB,IA5ChB,SAAkBv1B,GAChB,OAAOgD,KAAKgvB,SAASuD,IAAIv1B,EAC1B,EA2CD+xB,GAAMrkB,UAAUqH,IAhChB,SAAkB/U,GAChB,OAAOgD,KAAKgvB,SAASjd,IAAI/U,EAC1B,EA+BD+xB,GAAMrkB,UAAU2gB,IAnBhB,SAAkBruB,EAAKV,GACrB,IAAIo3B,EAAQ1zB,KAAKgvB,SACjB,GAAI0E,aAAiB7E,GAAW,CAC9B,IAAI8E,EAAQD,EAAM1E,SAClB,IAAKjB,IAAQ4F,EAAMj2B,OAASk2B,IAE1B,OADAD,EAAMzzB,KAAK,CAAClD,EAAKV,IACV0D,KAET0zB,EAAQ1zB,KAAKgvB,SAAW,IAAIF,GAAS6E,EACtC,CAED,OADAD,EAAMrI,IAAIruB,EAAKV,GACR0D,IACR,EAgcD,IAAImxB,GAAa3D,GAAmB1B,EAAQ0B,GAAkB5wB,QAyhB9D,WACE,MAAO,EACR,EAlhBG8zB,GAtQJ,SAAoBp0B,GAClB,OAAOswB,GAAehiB,KAAKtO,EAC5B,EAwXD,SAASqzB,GAAQrzB,EAAOoB,GAEtB,SADAA,EAAmB,MAAVA,EAAiBorB,EAAmBprB,KAE1B,iBAATpB,GAAqBouB,EAASyI,KAAK72B,KAC1CA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQoB,CAC5C,CAkCD,SAASqzB,GAAYz0B,GACnB,IAAIi1B,EAAOj1B,GAASA,EAAMC,YAG1B,OAAOD,KAFqB,mBAARi1B,GAAsBA,EAAK7mB,WAAc4hB,EAG9D,CASD,SAAS6B,GAASpC,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOY,EAAa/hB,KAAKmhB,EAChC,CAAO,MAAOrnB,GAAK,CACd,IACE,OAAQqnB,EAAO,EACtB,CAAO,MAAOrnB,GAAK,CACf,CACD,MAAO,EACR,CAwDD,SAASqrB,GAAGzzB,EAAOu3B,GACjB,OAAOv3B,IAAUu3B,GAAUv3B,GAAUA,GAASu3B,GAAUA,CACzD,EAzOIhG,IAAY6C,GAAO,IAAI7C,GAAS,IAAIiG,YAAY,MAAQhK,GACxDiE,IAAO2C,GAAO,IAAI3C,KAAQ3E,GAC1BtjB,IAAW4qB,GAAO5qB,GAAQC,YAAcwjB,GACxCzO,IAAO4V,GAAO,IAAI5V,KAAQ2O,GAC1BuE,IAAW0C,GAAO,IAAI1C,KAAYpE,KACrC8G,GAAS,SAASp0B,GAChB,IAAIsH,EAASgpB,GAAehiB,KAAKtO,GAC7Bi1B,EAAO3tB,GAAU0lB,EAAYhtB,EAAMC,iBAAc4H,EACjD4vB,EAAaxC,EAAOpD,GAASoD,QAAQptB,EAEzC,GAAI4vB,EACF,OAAQA,GACN,KAAK7F,GAAoB,OAAOpE,EAChC,KAAKsE,GAAe,OAAOhF,EAC3B,KAAKiF,GAAmB,OAAO9E,EAC/B,KAAK+E,GAAe,OAAO7E,EAC3B,KAAK8E,GAAmB,OAAO3E,EAGnC,OAAOhmB,CACZ,GAsQC,IAAIrF,GAAUD,MAAMC,QA2BpB,SAAS6wB,GAAY9yB,GACnB,OAAgB,MAATA,GAqGT,SAAkBA,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GAASwsB,CAC5C,CAxGyBkL,CAAS13B,EAAMoB,UAAYw1B,GAAW52B,EAC/D,CAgDD,IAAIqxB,GAAWD,IAsLf,WACE,OAAO,CACR,EArKD,SAASwF,GAAW52B,GAGlB,IAAI+gB,EAAMgT,GAAS/zB,GAASswB,GAAehiB,KAAKtO,GAAS,GACzD,OAAO+gB,GAAO6L,GAAW7L,GAAO8L,CACjC,CA0DD,SAASkH,GAAS/zB,GAChB,IAAIF,SAAcE,EAClB,QAASA,IAAkB,UAARF,GAA4B,YAARA,EACxC,CA0DD,SAASS,GAAKgzB,GACZ,OAAOT,GAAYS,GAAUZ,GAAcY,GAtuB7C,SAAkBA,GAChB,IAAKkB,GAAYlB,GACf,OAAOjC,GAAWiC,GAEpB,IAAIjsB,EAAS,GACb,IAAK,IAAI5G,KAAOJ,OAAOizB,GACjBllB,GAAeC,KAAKilB,EAAQ7yB,IAAe,eAAPA,GACtC4G,EAAO1D,KAAKlD,GAGhB,OAAO4G,CACR,CA2tBsDqwB,CAASpE,EAC/D,CAyCDjH,EAAOD,QA9VP,SAAmBrsB,GACjB,OAAO2zB,GAAU3zB,GAAO,GAAM,EAC/B,CA6VF,CA5sDA,CA4sDGosB,GAAkBA,GAAiBC,SAEtC,IACIuL,GAAyB3pB,EADCme,GAAiBC,SAG/C,SAASwL,GAAkB92B,EAAS+2B,EAAOlnB,GACvC,IAII,GAHIA,GAAQ+S,WAAW,UACnB/S,GAAQsT,MAAM,0BAA0B3Z,KAAKC,UAAUstB,iBAAqBvtB,KAAKC,UAAUzJ,OAE1F+2B,EACD,OAAO/2B,EAEX,GAAI+2B,EAAMC,MAEN,OADAh3B,EAAU,IAAK+2B,EAAMC,OAIzB,GADAh3B,EAAUi3B,GAAUj3B,OAAS8G,GACzBiwB,EAAMG,SAAU,CAChB,IAAK,MAAMC,KAAWJ,EAAMG,SACH,WAAjBC,EAAQp4B,KACRq4B,GAAWp3B,EAASm3B,EAAQh3B,MAEN,QAAjBg3B,EAAQp4B,MACbs4B,GAAer3B,EAASm3B,EAAQl4B,MAAOk4B,EAAQh3B,MAGvD,OAAOH,CACV,CACD,MAAMs3B,EAAQP,EAAMO,MACdC,EAAUR,EAAMQ,QAChBC,EAAUT,EAAMS,QAgBtB,OAfIF,GACA/3B,OAAOC,KAAK83B,GAAOv1B,SAASpC,IACxBK,EAAQL,GAAO23B,EAAM33B,EAAI,IAG7B43B,GACAh4B,OAAOC,KAAK+3B,GAASx1B,SAASpC,IAC1B83B,GAAuB93B,EAAKK,EAASu3B,EAAQ,IAGjDC,GACAA,EAAQz1B,SAASpC,WACNK,EAAQL,EAAI,IAGpBK,CACV,CACD,MAAOqH,GAEH,OADAwI,GAAQ5B,MAAM,gCAAgCzE,KAAKC,UAAUstB,iBAAqBvtB,KAAKC,UAAUzJ,KAAYqH,GACtGrH,CACV,CACL,CACA,SAASi3B,GAAUS,EAAKvB,GACpB,OAAOU,GAAUa,EACrB,CACA,MAAMD,GAAyB,CAAC93B,EAAKg4B,EAAMC,KACvC,MAAMC,EAAQD,EAASj4B,GACvB,QAAcmH,IAAV+wB,EACA,OAAOF,EAEX,MAAMjS,EAAOiS,EAAKh4B,GAClB,OAAK+lB,GAASmS,EAIM,iBAATnS,GACS,iBAATA,GACS,kBAATA,GACU,iBAAVmS,GACU,iBAAVA,GACU,kBAAVA,GACP52B,MAAMC,QAAQwkB,IACdzkB,MAAMC,QAAQ22B,IACdF,EAAKh4B,GAAOk4B,EACLF,IAEXA,EAAKh4B,GAAOJ,OAAOumB,OAAO,GAAIJ,EAAMmS,GAC7BF,IAfHA,EAAKh4B,GAAOk4B,EACLF,EAcA,EAEf,SAASG,GAAU3qB,EAAG4qB,GAClB,GAAI5qB,IAAM4qB,EACN,OAAO,EAEX,KAAM5qB,aAAa5N,QAAaw4B,aAAax4B,QACzC,OAAO,EAEX,GAAI4N,EAAEjO,cAAgB64B,EAAE74B,YACpB,OAAO,EAEX,IAAK,MAAM84B,KAAK7qB,EACZ,GAAKA,EAAEG,eAAe0qB,GAAtB,CAGA,IAAKD,EAAEzqB,eAAe0qB,GAClB,OAAO,EAEX,GAAI7qB,EAAE6qB,KAAOD,EAAEC,GAAf,CAGA,GAAsB,iBAAV7qB,EAAE6qB,GACV,OAAO,EAEX,IAAKF,GAAU3qB,EAAE6qB,GAAID,EAAEC,IACnB,OAAO,CALV,CANA,CAcL,IAAK,MAAMA,KAAKD,EACZ,GAAIA,EAAEzqB,eAAe0qB,KAAO7qB,EAAEG,eAAe0qB,GACzC,OAAO,EAGf,OAAO,CACX,CACA,SAASX,GAAeK,EAAKz4B,EAAOkB,GAChC,MAAM83B,EAAU93B,EAAK6oB,MAAM,KAC3B,IAAIhf,EACJ,IAAKA,EAAI,EAAGA,EAAIiuB,EAAQ53B,OAAS,EAAG2J,IAC3B0tB,EAAIO,EAAQjuB,MACb0tB,EAAIO,EAAQjuB,IAAM,CAAA,GAES,iBAApB0tB,EAAIO,EAAQjuB,MACnB0tB,EAAIO,EAAQjuB,IAAM,CAAA,GAEtB0tB,EAAMA,EAAIO,EAAQjuB,IAEtB0tB,EAAIO,EAAQjuB,IAAM/K,CACtB,CACA,SAASi5B,GAASC,EAAUC,GACxB,OAAO74B,OAAOC,KAAK44B,GAAQC,OAAOC,GACH,iBAAhBF,EAAOE,GACPJ,GAASC,IAAWG,IAAQ,CAAE,EAAEF,EAAOE,IAAQ,CAAA,GAEnDF,EAAOE,KAASH,IAAWG,IAE1C,CACA,SAASlB,GAAWM,EAAKv3B,GACrB,MAAM83B,EAAU93B,EAAK6oB,MAAM,KAC3B,IAAIhf,EACJ,IAAKA,EAAI,EAAGA,EAAIiuB,EAAQ53B,OAAS,EAAG2J,IAAK,CACrC,IAAK0tB,EAAIO,EAAQjuB,IACb,OAEJ0tB,EAAMA,EAAIO,EAAQjuB,GACrB,QACM0tB,EAAIO,EAAQjuB,GACvB,CA0oBA,MAAMuuB,GACFC,SACAC,cACAC,YACAC,QACA,WAAAz5B,CAAYiL,GACRxH,KAAKg2B,QAAU,IA9oBvB,MACIC,QACAC,YACAC,kBACAC,yBACAC,YACAC,mBAAqB,CAAA,EACrBC,kBAAoB,GACpBC,gCAAkC,EAClCC,kBAAoB,CAAA,EACpBC,iBAAmB,CAAA,EACnBC,iBAAmB,CAAA,EACnBC,sBAAmBzyB,EACnB0yB,mBAAqB,CAAA,EACrBC,4BAA8B,GAC9BC,sBACA,mBAAIhZ,GACA,IAAK/d,KAAK42B,iBAAkB,CACxB,MAAMI,EAAqBh3B,KAAKk2B,YAAYhY,iBAAiBzE,MAAMwd,GAAgB,YAAVA,EAAEC,MAC3El3B,KAAK42B,iBAAmBI,GAAoBhP,SAAW,CAC1D,CACD,OAAOhoB,KAAK42B,gBACf,CACD,oBAAIO,GACA,OAAOn3B,KAAK+d,iBAAmB,CAClC,CACD,WAAAxhB,CAAYiL,GACRxH,KAAKk2B,YAAc1uB,EAAOD,WAC1BvH,KAAKi2B,QAAUzuB,EAAO0F,OACtBlN,KAAKm2B,kBAAoB3uB,EAAO4vB,iBAChCp3B,KAAKo2B,yBAA2B5uB,EAAO6vB,wBACvCr3B,KAAKq2B,YAAcr2B,KAAKk2B,YAAYvtB,OAAO,SAAU,CACjD0e,EACAG,EACAG,EACAE,IAEJ7nB,KAAKq2B,YAAY9Z,aAAavc,KAAKs3B,WAAWxhB,KAAK9V,OACnDA,KAAKq2B,YAAYztB,UAAUkU,IACvB,GAAKA,EAGL,OAAK9c,KAAKo2B,8BAGVp2B,KAAKu3B,kBAAkB/pB,MAAK,IAAMxN,KAAKk2B,YAAYlV,kBAAkB,CAAE1jB,KAAM,eAFlE0C,KAAKk2B,YAAYlV,kBAAkB,CAAE1jB,KAAM,YAEqC,IAE/F0C,KAAKw3B,oCACLx3B,KAAKy3B,oCACLz3B,KAAK03B,sCACL13B,KAAKk2B,YAAY9X,UAAU9K,MAAMyU,GAAyBzqB,MAAOgQ,IAC7D,MAAMlR,EAAOkR,EAAQlR,KAChBA,IAGDA,IAASirB,GACTjrB,IAASkrB,GACTlrB,IAAS+qB,EACTnnB,KAAK23B,4BAA4BrqB,GAE5BlR,IAASorB,GACdprB,IAASyrB,GACTzrB,IAAS0rB,GACT9nB,KAAK43B,4BAA4BtqB,GAE5BlR,IAASurB,GACdvrB,IAASgrB,GACTpnB,KAAK63B,8BAA8BvqB,GACtC,GAER,CACD,OAAAwqB,GACI,IAAK,MAAM5kB,KAAOlT,KAAKu2B,kBACnBv2B,KAAKk2B,YAAY3iB,IAAIL,GAEzBlT,KAAKu2B,kBAAkB74B,OAAS,EAChC,IAAK,MAAMq6B,KAAe/3B,KAAKs2B,mBACvBt2B,KAAK02B,iBAAiB/rB,eAAeotB,WAC9B/3B,KAAKs2B,mBAAmByB,EAG1C,CACD,aAAAC,CAAc16B,EAAMiR,GAChB,OAAIjR,KAAQ0C,KAAKy2B,oBAGjBz2B,KAAKy2B,kBAAkBn5B,GACnB0C,KAAKq2B,YACAnuB,KAAK,CACN9L,KAAM8qB,EACNve,OAAQ,SACRrL,OACAiR,OACA0pB,SAAU,aAETzqB,MAAM0qB,IACPl4B,KAAK02B,iBAAiBp5B,GAAQ46B,EAAiBC,WAC/Cn4B,KAAK22B,iBAAiBuB,EAAiBC,YAAc76B,EACrD,MAAM86B,EAAcp4B,KAAKs2B,mBAAmBh5B,IAAS,IAAI2qB,GAAeiQ,EAAiBC,WAAY76B,GAAM,OAAM6G,GAQjH,OAPAi0B,EAAYjQ,aAAc,EAC1BiQ,EAAY96B,KAAOA,EACnB86B,EAAYlQ,UAAYgQ,EAAiBC,WACzCC,EAAY/6B,QAAU66B,EAAiB3pB,MAAQ+lB,GAAU/lB,GACzD6pB,EAAY5P,qBAAsB,EAClCxoB,KAAKs2B,mBAAmBh5B,GAAQ86B,SACzBp4B,KAAKy2B,kBAAkBn5B,GACvB46B,EAAiBC,UAAU,KAtB/Bn4B,KAAKy2B,kBAAkBn5B,EAyBrC,CACD,GAAA4nB,GACI,OAAOtoB,OAAOC,KAAKmD,KAAKs2B,oBACnBj0B,QAAQ/E,GAAS0C,KAAKs2B,mBAAmBh5B,GAAM6qB,aACvD,CACD,YAAM/nB,CAAO9C,EAAM82B,GACXA,IACAA,EAAQE,GAAUF,IAElB92B,KAAQ0C,KAAKy2B,yBACPz2B,KAAKy2B,kBAAkBn5B,GAEjC,MAAM86B,EAAcp4B,KAAKs2B,mBAAmBh5B,GAC5C,IAAK86B,IAAgBA,EAAYjQ,YAC7B,OAAOnoB,KAAKg4B,cAAc16B,EAAM82B,GAEpC,IAAIiE,EAAiBD,EAAY/6B,QAC5B+6B,EAAY3P,iBACb4P,QAAuBr4B,KAAKuyB,IAAI6F,EAAY96B,OAEhD,MAAMg7B,EAAkBt4B,KAAKm3B,iBACzBn3B,KAAKu4B,wBAAwBF,EAAgBjE,GAC7Cp0B,KAAKw4B,wBAAwBH,EAAgBjE,GACjD,OAAKx3B,OAAOC,KAAKy7B,EAAgB3D,OAAOj3B,QAChCd,OAAOC,KAAKy7B,EAAgB1D,SAASl3B,QACrC46B,EAAgBzD,QAAQn3B,QACxB46B,EAAgB/D,UAAU72B,OAG3BsC,KAAKq2B,YACPnuB,KAAK,CACN9L,KAAMwrB,EACNjf,OAAQ,SACRwvB,WAAYC,EAAYlQ,UACxBkM,MAAOkE,GACR,GAAI,CAAE9a,YAAY,IAChBhQ,MAAMirB,IACPz4B,KAAK04B,cAAcN,EAAaE,EAAiB,CAC7CK,UAAWF,EAAWrvB,SACxB,IAZKtD,QAAQC,SActB,CACD,SAAMslB,CAAI/tB,EAAMiR,GACRA,IACAA,EAAO+lB,GAAU/lB,IAEjBjR,KAAQ0C,KAAKy2B,yBACPz2B,KAAKy2B,kBAAkBn5B,GAEjC,MAAM86B,EAAcp4B,KAAKs2B,mBAAmBh5B,GAC5C,OAAK86B,GAAgBA,EAAYjQ,YAG1BnoB,KAAKq2B,YACPnuB,KAAK,CACN9L,KAAMwrB,EACNjf,OAAQ,SACRwvB,WAAYC,EAAYlQ,UACxBkM,MAAO,CAAEC,MAAO9lB,IACjB,GAAI,CAAEiP,YAAY,IAChBhQ,MAAMirB,IACPz4B,KAAK04B,cAAcN,EAAa,CAC5B/D,MAAO9lB,EACPomB,MAAO,CAAE,EACTE,QAAS,GACTD,QAAS,CAAE,GACZ,CACC+D,UAAWF,EAAWrvB,SACxB,IAjBKpJ,KAAKg4B,cAAc16B,EAAMiR,EAmBvC,CACD,OAAAqqB,CAAQt7B,EAAME,EAAMlB,GAChB,OAAK0D,KAAKm3B,iBAGHn3B,KAAK64B,SAASv7B,EAAM,CAAC,CAAEE,OAAMlB,WAFzBwJ,QAAQ6H,OAAO,6EAG7B,CACD,cAAMkrB,CAASv7B,EAAMw7B,GACjB,IAAK94B,KAAKm3B,iBACN,OAAOrxB,QAAQ6H,OAAO,+EAEtBmrB,IACAA,EAAaxE,GAAUwE,IAEvBx7B,KAAQ0C,KAAKy2B,yBACPz2B,KAAKy2B,kBAAkBn5B,GAEjC,MAAM86B,EAAcp4B,KAAKs2B,mBAAmBh5B,GAC5C,IAAK86B,IAAgBA,EAAYjQ,YAAa,CAC1C,MAAM4M,EAAM,CAAA,EACZ,IAAK,MAAMgE,KAAaD,EACpBpE,GAAeK,EAAKgE,EAAUz8B,MAAOy8B,EAAUv7B,MAEnD,OAAOwC,KAAKg4B,cAAc16B,EAAMy3B,EACnC,CACD,MAAMR,EAAW,GACjB,IAAK,MAAMwE,KAAaD,EACI,OAApBC,EAAUz8B,MACVi4B,EAASr0B,KAAK,CAAE9D,KAAM,SAAUoB,KAAMu7B,EAAUv7B,OAGhD+2B,EAASr0B,KAAK,CAAE9D,KAAM,MAAOoB,KAAMu7B,EAAUv7B,KAAMlB,MAAOy8B,EAAUz8B,QAG5E,OAAO0D,KAAKq2B,YACPnuB,KAAK,CACN9L,KAAMwrB,EACNjf,OAAQ,SACRwvB,WAAYC,EAAYlQ,UACxBkM,MAAO,CAAEG,aACV,GAAI,CAAE/W,YAAY,IAChBhQ,MAAMirB,IACPz4B,KAAK04B,cAAcN,EAAa,CAC5BzD,MAAO,CAAE,EACTE,QAAS,GACTD,QAAS,CAAE,EACXL,YACD,CACCoE,UAAWF,EAAWrvB,SACxB,GAET,CACD,SAAMmpB,CAAIj1B,GACFA,KAAQ0C,KAAKy2B,yBACPz2B,KAAKy2B,kBAAkBn5B,GAEjC,MAAM86B,EAAcp4B,KAAKs2B,mBAAmBh5B,GAC5C,IAAK86B,IAAgBA,EAAYjQ,YAC7B,OAAOriB,QAAQC,QAAQ,CAAA,GAE3B,GAAIqyB,KAAiBA,EAAY3P,iBAAmB2P,EAAY5P,qBAC5D,OAAO,IAAI1iB,SAASC,IAChB/F,KAAKg5B,UAAU17B,GAAM,CAACiR,EAAM0qB,EAAIC,EAAIC,KAChCn5B,KAAKsd,YAAY6b,GACjBpzB,EAAQwI,EAAK,GACf,IAGV,MAAMlR,EAAU+6B,GAAa/6B,SAAW,GACxC,OAAOyI,QAAQC,QAAQuuB,GAAUj3B,GACpC,CACD,eAAM27B,CAAU17B,EAAMkO,EAAU4tB,GACxB97B,KAAQ0C,KAAKy2B,yBACPz2B,KAAKy2B,kBAAkBn5B,GAEjC,MAAM+7B,OAA4D,IAApBD,EAAkCp5B,KAAKw2B,gCAAkC4C,OACxF,IAApBA,IACPp5B,KAAKw2B,iCAAmC,GAExCx2B,KAAK82B,4BAA4BpB,OAAO4D,GAAiBA,EAAaC,SAAWv5B,KAAKw2B,mCACtFx2B,KAAK82B,4BAA4B52B,KAAK,CAAE63B,YAAaz6B,EAAMi8B,OAAQF,EAAgC7tB,aAEvG,IAAI4sB,EAAcp4B,KAAKs2B,mBAAmBh5B,GAC1C,IAAK86B,IACAA,EAAYjQ,YAIb,OAHAiQ,EAAcA,GAAe,IAAInQ,QAAe9jB,EAAW7G,GAAM,OAAO6G,GACxEnE,KAAKs2B,mBAAmBh5B,GAAQ86B,EAChCA,EAAY/P,gBAAgBgR,GAAkC7tB,EACvD1F,QAAQC,QAAQszB,GAE3B,MAAMG,EAAepB,EAAY3P,eAEjC,GADA2P,EAAY/P,gBAAgBgR,GAAkC7tB,EACzDguB,EAoBA,CACD,GAAIpB,EAAY5P,oBAAqB,CACjC,MAAMiR,EAAQnF,GAAU8D,EAAY/6B,SACpCmO,EAASiuB,EAAOA,EAAO,GAAIJ,EAC9B,CACD,OAAOvzB,QAAQC,QAAQszB,EAC1B,CAzBG,GAAKjB,EAAYhQ,eAWZ,CACD,GAAIgQ,EAAY5P,oBAAqB,CACjC,MAAMiR,EAAQnF,GAAU8D,EAAY/6B,SACpCmO,EAASiuB,EAAOA,EAAO,GAAIJ,EAC9B,CACD,OAAOvzB,QAAQC,QAAQszB,EAC1B,CAhBG,GAAIjB,EAAY/6B,SAAW+6B,EAAY7P,yBAA0B,CAC7D,GAAI6P,EAAY5P,oBAAqB,CACjC,MAAMiR,EAAQnF,GAAU8D,EAAY/6B,SACpCmO,EAASiuB,EAAOA,EAAO,GAAIJ,EAC9B,CACD,OAAOvzB,QAAQC,QAAQszB,EAC1B,CACD,OAAOr5B,KAAK05B,cAActB,GACrB5qB,MAAK,IAAM6rB,GAiB3B,CACD,WAAA/b,CAAY8b,GACRp5B,KAAK82B,4BAA8B92B,KAAK82B,4BAA4Bz0B,QAAQi3B,GAAiBA,EAAaC,SAAWH,IACrH,IAAK,MAAM97B,KAAQV,OAAOC,KAAKmD,KAAKs2B,oBAAqB,CACrD,MAAM8B,EAAcp4B,KAAKs2B,mBAAmBh5B,GAC5C,IAAK86B,EACD,OAEJ,MAAMoB,EAAepB,EAAY3P,sBAC1B2P,EAAY/P,gBAAgB+Q,GAC/BhB,EAAYjQ,aACZqR,IACCpB,EAAY3P,gBACb2P,EAAY7P,0BACZvoB,KAAK25B,gBAAgBvB,GAAa51B,OAAM,SAEvC41B,EAAYjQ,aACZiQ,EAAY3P,uBACNzoB,KAAKs2B,mBAAmBh5B,EAEtC,CACJ,CACD,aAAMs8B,CAAQt8B,GACNA,KAAQ0C,KAAKy2B,yBACPz2B,KAAKy2B,kBAAkBn5B,GAEjC,MAAM86B,EAAcp4B,KAAKs2B,mBAAmBh5B,GAC5C,OAAK86B,EAGEp4B,KAAKq2B,YACPnuB,KAAK,CACN9L,KAAMsrB,EACN/e,OAAQ,SACRwvB,WAAYC,EAAYlQ,YACzB1a,MAAMqsB,IAAe,IAPb/zB,QAAQ6H,OAAO,gBAAgBrQ,mBAQ7C,CACD,aAAAo7B,CAAcN,EAAahE,EAAO0F,GAC9B,MAAMC,EAAa3B,EAAY/6B,QAC/B+6B,EAAY/6B,QAAU82B,GAAkBiE,EAAY/6B,QAAS+2B,EAAOp0B,KAAKi2B,SACzEmC,EAAY5P,qBAAsB,EAC9BxoB,KAAKs2B,mBAAmB8B,EAAY96B,QAAU86B,GAC7CjD,GAAU4E,EAAY3B,EAAY/6B,UACnC2C,KAAKg6B,sBAAsB5B,EAAahE,EAAO0F,EAEtD,CACD,iCAAAtC,GACI,MAAMyC,EAAsB,CACxB3S,EACAD,EACAF,GAEJ,IAAK,MAAM+S,KAAsBD,EAAqB,CAClD,MAAM/mB,EAAMlT,KAAKk2B,YAAY/iB,GAAG+mB,EAAoBl6B,KAAK23B,4BAA4B7hB,KAAK9V,OAC1FA,KAAKu2B,kBAAkBr2B,KAAKgT,EAC/B,CACJ,CACD,2BAAAykB,CAA4BwC,GACxB,MAAMD,EAAqBC,EAAkB/9B,KACzC89B,IAAuB/S,GACvBnnB,KAAK02B,iBAAiByD,EAAkBC,aAAeD,EAAkBhC,WACzEn4B,KAAK22B,iBAAiBwD,EAAkBhC,YAAcgC,EAAkBC,aAEnEF,IAAuB5S,IAC5BtnB,KAAK02B,iBAAiByD,EAAkB78B,MAAQ68B,EAAkBhC,WAClEn4B,KAAK22B,iBAAiBwD,EAAkBhC,YAAcgC,EAAkB78B,MAG5E,MAAMA,EAAO0C,KAAK22B,iBAAiBwD,EAAkBhC,YACrD,IAAK76B,EACD,MAAM,IAAIuC,MAAM,yDAA2Ds6B,EAAkBhC,YAEjG,IAAKn4B,KAAK02B,iBAAiBp5B,GACvB,MAAM,IAAIuC,MAAM,uDAAyDs6B,EAAkBhC,YAE/F,IAAIC,EAAcp4B,KAAKs2B,mBAAmBh5B,GAC1C,GAAI86B,EAAa,CACb,GAAIA,EAAYjQ,YACZ,OAGA,IAAKiQ,EAAY3P,eACb,MAAM,IAAI5oB,MAAM,iDAEpBu4B,EAAYjQ,aAAc,EAC1BiQ,EAAYlQ,UAAYiS,EAAkBhC,WAC1CC,EAAY9P,WAAa6R,EAAkBC,YACtChC,EAAY7P,0BACbvoB,KAAK05B,cAActB,EAG9B,MAEGp4B,KAAKs2B,mBAAmBh5B,GAAQ86B,EAC5B,IAAInQ,GAAekS,EAAkBhC,WAAY76B,GAAM,EAAM68B,EAAkBC,aAC/Ep6B,KAAKm2B,mBACLn2B,KAAKg5B,UAAU17B,GAAM,SAAWkQ,MAAM+rB,GAAWv5B,KAAK+2B,sBAAwBwC,GAGzF,CACD,iCAAA9B,GACI,MAAM4C,EAAsB,CACxBxS,EACAL,EACAM,IAEJ,IAAK,MAAMwS,KAAsBD,EAAqB,CAClD,MAAMnnB,EAAMlT,KAAKk2B,YAAY/iB,GAAGmnB,EAAoBt6B,KAAK43B,4BAA4B9hB,KAAK9V,OAC1FA,KAAKu2B,kBAAkBr2B,KAAKgT,EAC/B,CACJ,CACD,2BAAA0kB,CAA4B2C,GACxB,MAAMD,EAAqBC,EAAkBn+B,KACvC8rB,EAAYqS,EAAkBpC,WACpC,IAAIC,EAAcp4B,KAAKs2B,mBAAmBt2B,KAAK22B,iBAAiBzO,IAChE,MAAMsS,GAAYpC,IAAgBA,EAAYjQ,YAC9C,GAAImS,IAAuBxS,GAClBsQ,IACDA,EACIp4B,KAAKs2B,mBAAmBiE,EAAkBH,cACtC,IAAInS,GAAeC,EAAWqS,EAAkBH,aAAa,EAAMG,EAAkBH,cAEjGp6B,KAAKs2B,mBAAmBiE,EAAkBH,aAAehC,EACzDp4B,KAAK22B,iBAAiBzO,GAAaqS,EAAkBH,YACrDp6B,KAAK02B,iBAAiB6D,EAAkBH,aAAelS,EACvDkQ,EAAYlQ,UAAYA,EACxBkQ,EAAYjQ,aAAc,EAC1BiQ,EAAY9P,WAAaiS,EAAkBH,YAC3ChC,EAAYhQ,gBAAiB,OAG7B,IAAKgQ,IAAgBA,EAAYjQ,YAW7B,YAVImS,IAAuB9S,GACvB4Q,EAAcA,GAAe,IAAInQ,GAAeC,EAAWqS,EAAkBj9B,MAAM,OAAM6G,GACzFi0B,EAAY7P,0BAA2B,EACvCvoB,KAAKs2B,mBAAmBiE,EAAkBj9B,MAAQ86B,EAClDp4B,KAAK22B,iBAAiBzO,GAAaqS,EAAkBj9B,KACrD0C,KAAK02B,iBAAiB6D,EAAkBj9B,MAAQ4qB,GAGhDloB,KAAKi2B,QAAQ3qB,MAAM,0CAA0C4c,MAKzE,MAAM6R,EAAa3B,EAAY/6B,QAE/B,GADA+6B,EAAY5P,qBAAsB,EAC9B8R,IAAuB9S,EACvB4Q,EAAY/6B,QAAUk9B,EAAkBhsB,MAAQ,CAAA,OAE/C,GAAI+rB,IAAuBxS,GAC5BsQ,EAAY/6B,QAAUk9B,EAAkBE,kBAAoB,CAAA,MAE3D,IAAIH,IAAuBzS,EAI5B,MAAM,IAAIhoB,MAAM,uCAAyCy6B,GAHzDlC,EAAY/6B,QAAU82B,GAAkBiE,EAAY/6B,QAASk9B,EAAkBnG,MAAOp0B,KAAKi2B,QAI9F,EACGuE,GACCrF,GAAUiD,EAAY/6B,QAAS08B,IAChCO,IAAuB9S,GACvBxnB,KAAKg6B,sBAAsB5B,EAAamC,EAAkBnG,MAAO,CAAEuE,UAAW4B,EAAkBG,YAEvG,CACD,qBAAAV,CAAsB5B,EAAahE,EAAO0F,GAEtC,IADA1F,EAAQA,GAAS,CAAEO,MAAO,GAAIC,QAAS,CAAE,EAAEP,MAAO,CAAA,EAAIQ,QAAS,KACrDN,SAAU,CAChBH,EAAMO,MAAQP,EAAMQ,QAAUR,EAAMC,MAAQ,GAC5CD,EAAMS,QAAU,GAChB,IAAK,MAAML,KAAWJ,EAAMG,SACH,WAAjBC,EAAQp4B,OAC2B,IAA/Bo4B,EAAQh3B,KAAK6V,QAAQ,MACrB+gB,EAAMS,QAAQ30B,KAAKs0B,EAAQh3B,MAE/Bk3B,GAAeN,EAAMQ,QAAS,KAAMJ,EAAQh3B,OAEtB,QAAjBg3B,EAAQp4B,MACbs4B,GAAeN,EAAMQ,QAASJ,EAAQl4B,MAAOk4B,EAAQh3B,KAGhE,CACD,IAAK,MAAMm9B,KAAuBvC,EAAY/P,gBAC1C,GAAI+P,EAAY/P,gBAAgB1d,eAAegwB,GAC3C,KAEIC,EADuBxC,EAAY/P,gBAAgBsS,IACpCrG,GAAU8D,EAAY/6B,SAAUi3B,GAAU13B,OAAOumB,OAAO,CAAA,EAAIiR,EAAMO,OAAS,CAAE,EAAEP,EAAMQ,SAAW,CAAA,EAAIR,EAAMC,OAAS,CAAA,IAAMD,EAAMS,QAASrR,SAASmX,EAAqB,IAAKb,EAC7L,CACD,MAAO/tB,GACH/L,KAAKi2B,QAAQ1kB,MAAM,mBAAqB1K,KAAKC,UAAUiF,GAC1D,CAGZ,CACD,mCAAA2rB,GACI,MAAMmD,EAAwB,CAC1BlT,EACAP,GAEJ,IAAK,MAAM0T,KAAwBD,EAAuB,CACtD,MAAM3nB,EAAMlT,KAAKk2B,YAAY/iB,GAAG2nB,EAAsB96B,KAAK63B,8BAA8B/hB,KAAK9V,OAC9FA,KAAKu2B,kBAAkBr2B,KAAKgT,EAC/B,CACJ,CACD,6BAAA2kB,CAA8BkD,GAE1B,IAAI7S,EACA5qB,EACJ,GAH6By9B,EAAa3+B,OAGbgrB,GAGzB,GAFA9pB,EAAOy9B,EAAaX,YACpBlS,EAAYloB,KAAK02B,iBAAiBp5B,IAC7B4qB,EAED,YADAloB,KAAKi2B,QAAQ3qB,MAAM,8CAA8CyvB,EAAaX,oBAOlF,GAFAlS,EAAY6S,EAAa5C,WACzB76B,EAAO0C,KAAK22B,iBAAiBzO,IACxB5qB,EAED,YADA0C,KAAKi2B,QAAQ3qB,MAAM,6CAA6CyvB,EAAa5C,qBAI9En4B,KAAK22B,iBAAiBzO,UACtBloB,KAAK02B,iBAAiBp5B,GAC7B,MAAM86B,EAAcp4B,KAAKs2B,mBAAmBh5B,UACrC0C,KAAKs2B,mBAAmBh5B,GAC1B86B,GAAgBA,EAAYjQ,aAC7BnoB,KAAKi2B,QAAQ3qB,MAAM,6CAA6C4c,IAGvE,CACD,aAAAwR,CAActB,GAEV,OADAA,EAAY7P,0BAA2B,EAChCvoB,KAAKq2B,YACPnuB,KAAK,CACN9L,KAAMmrB,EACN5e,OAAQ,SACRwvB,WAAYC,EAAYlQ,YACzB1a,MAAMqsB,IAAe,GAC3B,CACD,eAAAF,CAAgBvB,GAEZ,OADAA,EAAY7P,0BAA2B,EAChCvoB,KAAKq2B,YACPnuB,KAAK,CACN9L,KAAMqrB,EACN9e,OAAQ,SACRwvB,WAAYC,EAAYlQ,YACzB1a,MAAMqsB,IAAe,GAC3B,CACD,uBAAArB,CAAwBxd,EAAMggB,GAC1B,MAAM5G,EAAQ,CAAEO,MAAO,CAAA,EAAIC,QAAS,GAAIC,QAAS,GAAIR,WAAOlwB,GAC5D,GAAI6W,EACA,IAAK,MAAMxQ,KAAK5N,OAAOC,KAAKme,IACY,IAAhCpe,OAAOC,KAAKm+B,GAAI3nB,QAAQ7I,IACX,OAAVwwB,EAAGxwB,IACF2qB,GAAUna,EAAKxQ,GAAIwwB,EAAGxwB,MAC1B4pB,EAAMQ,QAAQpqB,GAAKwwB,EAAGxwB,IAIlC,IAAK,MAAMA,KAAK5N,OAAOC,KAAKm+B,GACnBhgB,IAA2C,IAAlCpe,OAAOC,KAAKme,GAAM3H,QAAQ7I,GAKrB,OAAVwwB,EAAGxwB,IACR4pB,EAAMS,QAAQ30B,KAAKsK,GALL,OAAVwwB,EAAGxwB,KACH4pB,EAAMO,MAAMnqB,GAAKwwB,EAAGxwB,IAOhC,OAAO4pB,CACV,CACD,uBAAAmE,CAAwBvd,EAAMggB,GAC1B,MAAM5G,EAAQ,CAAEO,MAAO,CAAE,EAAEC,QAAS,CAAE,EAAEC,QAAS,GAAIR,WAAOlwB,EAAWowB,SAAU,IACjF,IAAK,MAAM/pB,KAAK5N,OAAOC,KAAKm+B,GACV,OAAVA,EAAGxwB,GAEE2qB,GADSna,EAAOA,EAAKxQ,GAAK,KACTwwB,EAAGxwB,KACrB4pB,EAAMG,UAAUr0B,KAAK,CAAE9D,KAAM,MAAOoB,KAAMgN,EAAGlO,MAAO0+B,EAAGxwB,KAI3D4pB,EAAMG,UAAUr0B,KAAK,CAAE9D,KAAM,SAAUoB,KAAMgN,IAGrD,OAAO4pB,CACV,CACD,UAAAkD,GACI,IAAK,MAAMpkB,KAAOlT,KAAKu2B,kBACnBv2B,KAAKk2B,YAAY3iB,IAAIL,GAErBlT,KAAK+2B,wBACL/2B,KAAKsd,YAAYtd,KAAK+2B,8BACf/2B,KAAK+2B,uBAEhB/2B,KAAKu2B,kBAAoB,GACzBv2B,KAAK02B,iBAAmB,GACxB12B,KAAK22B,iBAAmB,UACjB32B,KAAK42B,iBACZ52B,KAAK62B,mBAAqBj6B,OAAOC,KAAKmD,KAAKs2B,oBAAoBx5B,QAAO,CAACm+B,EAAYC,KAC/ED,EAAWC,GAAWl7B,KAAKs2B,mBAAmB4E,GAAS79B,QAChD49B,IACR,CAAE,GACLj7B,KAAKs2B,mBAAqB,EAC7B,CACD,qBAAMiB,GACFv3B,KAAKw3B,oCACLx3B,KAAKy3B,oCACLz3B,KAAK03B,sCACL13B,KAAKk2B,YAAY9X,UAAU9K,MAAMyU,GAAyBzqB,MAAOgQ,IAC7D,MAAMlR,EAAOkR,EAAQlR,KAChBA,IAGDA,IAASirB,GACTjrB,IAASkrB,GACTlrB,IAAS+qB,EACTnnB,KAAK23B,4BAA4BrqB,GAE5BlR,IAASorB,GACdprB,IAASyrB,GACTzrB,IAAS0rB,GACT9nB,KAAK43B,4BAA4BtqB,GAE5BlR,IAASurB,GACdvrB,IAASgrB,GACTpnB,KAAK63B,8BAA8BvqB,GACtC,UAECxH,QAAQof,IAAIllB,KAAK82B,4BAA4B1vB,KAAKkyB,GAAiBt5B,KAAKg5B,UAAUM,EAAavB,YAAauB,EAAa9tB,SAAU8tB,EAAaC,iBAChJv5B,KAAKm7B,aACX,IAAK,MAAMD,KAAWl7B,KAAK62B,mBAAoB,CAC3C,GAAgD,iBAArC72B,KAAK62B,mBAAmBqE,IAAkF,IAAzDt+B,OAAOC,KAAKmD,KAAK62B,mBAAmBqE,IAAUx9B,OACtG,SAEJ,MAAM09B,EAAgBp7B,KAAK62B,mBAAmBqE,GAC9Cl7B,KAAKi2B,QAAQplB,KAAK,gCAAgCqqB,WAC5Cl7B,KAAKm7B,mBACLn7B,KAAKI,OAAO86B,EAASE,EAC9B,CACDp7B,KAAK62B,mBAAqB,GAC1B72B,KAAKi2B,QAAQplB,KAAK,4BACrB,CACD,UAAAsqB,GACI,OAAO,IAAIr1B,SAASC,GAAYO,YAAW,IAAMP,KAAW,IAC/D,GASgCyB,EAChC,CACD,GAAA0d,GACI,OAAOllB,KAAKg2B,QAAQ9Q,KACvB,CACD,MAAA9kB,CAAO9C,EAAMiR,GAGT,OAFAvO,KAAKq7B,UAAU/9B,GACf0C,KAAKs7B,UAAU/sB,GACRvO,KAAKg2B,QAAQ51B,OAAO9C,EAAMiR,EACpC,CACD,GAAA8c,CAAI/tB,EAAMiR,GAGN,OAFAvO,KAAKq7B,UAAU/9B,GACf0C,KAAKs7B,UAAU/sB,GACRvO,KAAKg2B,QAAQ3K,IAAI/tB,EAAMiR,EACjC,CACD,OAAAqqB,CAAQt7B,EAAME,EAAM+Q,GAChBvO,KAAKq7B,UAAU/9B,GACf0C,KAAKu7B,UAAU/9B,GAEf,MADgC,KAATA,GAEnBwC,KAAKs7B,UAAU/sB,GACRvO,KAAKqrB,IAAI/tB,EAAMiR,IAEnBvO,KAAKg2B,QAAQ4C,QAAQt7B,EAAME,EAAM+Q,EAC3C,CACD,QAAAsqB,CAASv7B,EAAMk+B,GAEX,GADAx7B,KAAKq7B,UAAU/9B,IACVgB,MAAMC,QAAQi9B,GACf,MAAM,IAAI37B,MAAM,uDAEpB,IAAK,MAAMrC,KAAEA,EAAIlB,MAAEA,KAAWk/B,EAAO,CACjCx7B,KAAKu7B,UAAU/9B,GACiB,KAATA,GAEnBwC,KAAKs7B,UAAUh/B,EAEtB,CACD,OAAO0D,KAAKg2B,QAAQ6C,SAASv7B,EAAMk+B,EACtC,CACD,SAAAxC,CAAU17B,EAAMkO,GAEZ,GADAxL,KAAKq7B,UAAU/9B,GACS,mBAAbkO,EACP,MAAM,IAAI3L,MAAM,8CAEpB,OAAOG,KAAKg2B,QACPgD,UAAU17B,GAAM,CAACiR,EAAM6lB,EAAOS,EAAS73B,EAAK88B,IAActuB,EAAS+C,EAAM6lB,EAAOS,GAAS,IAAM70B,KAAKg2B,QAAQ1Y,YAAYtgB,IAAM88B,KAC9HtsB,MAAMxQ,GAAQ,KACfgD,KAAKg2B,QAAQ1Y,YAAYtgB,EAAI,GAEpC,CACD,GAAAu1B,CAAIj1B,GAEA,OADA0C,KAAKq7B,UAAU/9B,GACR0C,KAAKg2B,QAAQzD,IAAIj1B,EAC3B,CACD,KAAAulB,GACI,OAAO/c,QAAQC,QAAQ/F,KAC1B,CACD,OAAA45B,CAAQt8B,GAEJ,OADA0C,KAAKq7B,UAAU/9B,GACR0C,KAAKg2B,QAAQ4D,QAAQt8B,EAC/B,CACD,oBAAI65B,GACA,OAAOn3B,KAAKg2B,QAAQmB,gBACvB,CACD,SAAAkE,CAAU/9B,GACN,GAAoB,iBAATA,GAA8B,KAATA,EAC5B,MAAM,IAAIuC,MAAM,iDAEvB,CACD,SAAA07B,CAAU/9B,GACN,GAAoB,iBAATA,EACP,MAAM,IAAIqC,MAAM,qDAEvB,CACD,SAAAy7B,CAAU/sB,GACN,GAAoB,iBAATA,EACP,MAAM,IAAI1O,MAAM,wCAEvB,EAGL,SAAS47B,GAAWvsB,EAASwsB,EAAiBC,GAC1C,MAA+B,mBAApBD,GAA2D,mBAAlBC,EACzCzsB,GAEoB,mBAApBwsB,EACPA,EAAkB,OAEY,mBAAlBC,IACZA,EAAgB,QAEbzsB,EAAQ1B,KAAKkuB,EAAiBC,GACzC,CAEA,SAASC,GAAYC,EAAK,EAAG3sB,EAAS5D,GAClC,IAAI0I,EACJ,MAAM8nB,EAAsB,KACpB9nB,GACAC,aAAaD,EAChB,EASL,OAPA9E,EACK1B,MAAK,KACNsuB,GAAqB,IAEpBt5B,OAAM,KACPs5B,GAAqB,IAElB,IAAIh2B,SAAQ,CAACC,EAAS4H,KACzBqG,EAAU1N,YAAW,IAAMqH,EAAOrC,IAAQuwB,EAAG,GAErD,CAEA,IAAIE,IACJ,SAAWA,GACPA,EAAaA,EAAsB,QAAI,GAAK,UAC5CA,EAAaA,EAAoB,MAAI,GAAK,OAC7C,CAHD,CAGGA,KAAiBA,GAAe,CAAE,IACrC,MAAMC,GACF76B,SACApB,KACAiJ,SACAizB,cACA,WAAA1/B,CAAY4E,EAAUpB,EAAMiJ,EAAUizB,GAClCj8B,KAAKmB,SAAWA,EAChBnB,KAAKD,KAAOA,EACZC,KAAKgJ,SAAWA,EAChBhJ,KAAKi8B,cAAgBA,CACxB,CACD,SAAAjD,CAAUpU,EAAQ7gB,EAAS23B,EAAiBC,EAAe7V,GACvD,MAAMoW,EAAwB,CAACC,EAAeC,EAAQC,EAAcC,KAChEv4B,EAAQw4B,sBAAwBx4B,EAAQw4B,uBAAyBx4B,EAAQy4B,cACzEx8B,KAAKmB,SAAS6L,OAAOgsB,UAAUoD,EAAQr4B,EAASo4B,EAAeE,EAAcC,EAAYxW,EAAY,EA2EzG,OAAO2V,GAzES,IAAI31B,SAAQ,CAACC,EAAS4H,KAClC,MAAM0uB,EAAgBnpB,IAClBnN,EAAQmN,EAAI,EAEVopB,EAAcvwB,IAChB4B,EAAO5B,EAAI,EAEf,IAAK6Y,EAED,YADAjX,EAAO,2JAGX,IAAI8uB,EAOJ,GALIA,EADkB,iBAAX7X,EACK,CAAEtnB,KAAMsnB,GAGRA,GAEX6X,EAAUn/B,KAEX,YADAqQ,EAAO,gKAGKxJ,IAAZJ,IACAA,EAAU,CAAA,GAEd,IAAIY,EAASZ,EAAQY,OAIrB,QAHeR,IAAXQ,IACAA,EAAS,QAES,iBAAXA,GAAkC,QAAXA,GAA+B,SAAXA,EAElD,YADAgJ,EAAO,IAAI9N,MAAM,IAAI8E,oFAGaR,IAAlCJ,EAAQw4B,wBACRx4B,EAAQw4B,sBAAwBx4B,EAAQ24B,6BACFv4B,IAAlCJ,EAAQw4B,wBACRx4B,EAAQw4B,sBAAwBv8B,KAAKi8B,cAAcM,6BAG7Bp4B,IAA1BJ,EAAQy4B,gBACRz4B,EAAQy4B,cAAgBz4B,EAAQ44B,6BACFx4B,IAA1BJ,EAAQy4B,gBACRz4B,EAAQy4B,cAAgBx8B,KAAKi8B,cAAcO,gBAInD,IAAII,EAAe,EACfC,EAAiB78B,KAAK88B,kCAAkCL,EAAW93B,GACvE,GAAIk4B,EAAen/B,OAAS,EACxBw+B,EAAsBW,EAAgBA,EAAe,GAAGrW,QAAQ,GAAI6V,EAAcC,OAEjF,CACD,MAAMS,EAAQ,KACV,GAAKp4B,GAAYZ,EAAqB,cAKtC,GAFA64B,GAXU,IAYVC,EAAiB78B,KAAK88B,kCAAkCL,EAAW93B,GAC/Dk4B,EAAen/B,OAAS,EAAG,CAC3B,MAAMs/B,EAAaH,EAAe,GAAGrW,QAAQ,GAC7C0V,EAAsBW,EAAgBG,EAAYX,EAAcC,EACnE,MACI,GAAIM,GAAgB74B,EAAQy4B,cAAe,CAE5CN,EAAsBW,EADQ,iBAAXjY,EAAsB,CAAEtnB,KAAMsnB,GAAWA,EACjByX,EAAcC,EAC5D,MAEGh2B,WAAWy2B,EAtBL,IAuBT,EAELz2B,WAAWy2B,EAzBG,IA0BjB,KAEqBrB,EAAiBC,EAC9C,CACD,OAAAsB,CAAQC,GACJ,MAAMC,OAA8Bh5B,IAAjB+4B,OACb/4B,EACA,IAAK+4B,GACX,OAAOl9B,KAAKo9B,WAAWD,GAAY/1B,KAAKi2B,GAC7BA,EAAgBC,OAAOt0B,UAErC,CACD,OAAAwd,CAAQ0W,GAOJ,OALIA,EADwB,iBAAjBA,EACQ,CAAE5/B,KAAM4/B,GAGR,IAAKA,GAEjBl9B,KAAKu9B,WAAWL,EAC1B,CACD,kBAAAM,CAAmBx0B,GACf,OAAOhJ,KAAKy9B,sBAAsBz0B,EACrC,CACD,WAAA00B,CAAYlyB,GACR,OAAOxL,KAAKD,KAAK49B,cAAcnyB,EAClC,CACD,aAAAoyB,CAAcpyB,GACV,OAAOxL,KAAKD,KAAK89B,gBAAgBryB,EACpC,CACD,WAAAsyB,CAAYtyB,GACR,OAAOxL,KAAKD,KAAKg+B,cAAcvyB,EAClC,CACD,aAAAwyB,CAAcxyB,GACV,OAAOxL,KAAKD,KAAKk+B,iBAAgB,CAACX,EAAQ3rB,KACtCnG,EAAS8xB,EAAQ3rB,EAAO,GAE/B,CACD,iBAAAusB,CAAkB1yB,GACd,OAAOxL,KAAKD,KAAKo+B,qBAAoB,CAACb,EAAQ1Y,KAC1CpZ,EAAS,CAAE8xB,SAAQ1Y,UAAS,GAEnC,CACD,mBAAAwZ,CAAoB5yB,GAChB,OAAOxL,KAAKD,KAAKs+B,uBAAsB,CAACf,EAAQ1Y,KAC5CpZ,EAAS,CAAE8xB,SAAQ1Y,UAAS,GAEnC,CACD,YAAM8B,CAAOwW,EAAcoB,EAAa35B,EAAQ45B,EAAmBnmB,EAAS9M,GA0FxE,OAAOmwB,GAzFkB3zB,WACrB,IAAI02B,EAOJ,GALIA,EADwB,iBAAjBtB,EACY,CAAE5/B,KAAM4/B,GAGR,IAAKA,IAEvBsB,EAAiBlhC,KAClB,OAAOwI,QAAQ6H,OAAO,2JAQ1B,GANK2wB,IACDA,EAAc,CAAA,GAEb35B,IACDA,EAAS,QAES,iBAAXA,GAAkC,QAAXA,GAA+B,SAAXA,GAAgC,aAAXA,EACvE,OAAOmB,QAAQ6H,OAAO,IAAI9N,MAAM,IAAI8E,kEAiBxC,GAfK45B,IACDA,EAAoB,CAAA,QAE0Bp6B,IAA9Co6B,EAAkBE,0BAClBF,EAAkBE,wBAA0BF,EAAkB7B,6BACZv4B,IAA9Co6B,EAAkBE,0BAClBF,EAAkBE,wBAA0Bz+B,KAAKi8B,cAAcM,6BAG/Bp4B,IAApCo6B,EAAkB/B,gBAClB+B,EAAkB/B,cAAgB+B,EAAkB5B,6BACZx4B,IAApCo6B,EAAkB/B,gBAClB+B,EAAkB/B,cAAgBx8B,KAAKi8B,cAAcO,qBAGrBr4B,IAApCo6B,EAAkB/B,eAA0E,iBAApC+B,EAAkB/B,cAC1E,OAAO12B,QAAQ6H,OAAO,IAAI9N,MAAM,IAAI0+B,EAAkB/B,8DAE1D,GAA2B,iBAAhB8B,EACP,OAAOx4B,QAAQ6H,OAAO,IAAI9N,MAAM,mDAAmD2+B,EAAiBlhC,SAExG,IAAIohC,EAAmB1+B,KAAK88B,kCAAkC0B,EAAkB75B,GAChF,GAAgC,IAA5B+5B,EAAiBhhC,OACjB,IACIghC,QAAyB1+B,KAAK2+B,qBAAqBH,EAAkB75B,EAAQ45B,EAChF,CACD,MAAOxyB,GACH,MAOM6yB,EAAW,CACbha,OARW,IACR4Z,EACHpB,WAAY,IAAM,GAClByB,mBAAmB,EACnBC,YAAaN,EAAiBM,aAAe,GAC7CC,MAAOP,EAAiBO,OAAOC,UAAY,CAAE,GAI7CC,YAAaX,EACbhxB,QAAS,kCAAkCzG,KAAKC,UAAUo2B,yBAAoCr2B,KAAKC,UAAUnC,KAC7Gu6B,iBAAa/6B,EACbg7B,cAAUh7B,EACVoO,YAAQpO,GAEZ,OAAO2B,QAAQ6H,OAAOixB,EACzB,CAEL,MAAM5qB,EAAUuqB,EAAkBE,wBAC5BW,EAAwBb,EACxBc,EAAiBX,EAAiBt3B,KAAKk4B,IACzC,MAAMC,EAAQ/rB,EAAO,IACfoR,EAAS0a,EAAkB9Y,QAAQ,GACnC8W,EAASgC,EAAkBhC,OAC3BkC,EAAgBx/B,KAAKmB,SAAS6L,OAAO0Z,OAAO6Y,EAAO3a,EAAQ0Z,EAAahB,EAAQ8B,GACtF,OAAOt5B,QAAQ25B,KAAK,CAChBD,EACA5D,GAAY5nB,EAASwrB,EAAe,CAChCE,aAAcH,EACdjyB,QAAS,uBAAuB0G,kCAAwC4Q,GAAQtnB,0BAA0BuJ,KAAKC,UAAUw2B,EAAOt0B,uBAAuBnC,KAAKC,UAAUs4B,KACtK7sB,OAAQwpB,GAAal8B,SAE3B,IAEA8/B,QAA2B75B,QAAQof,IAAIma,GACvC7yB,EAAUxM,KAAK4/B,uBAAuBD,EAAoBnB,EAAkBF,GAElF,OADoBqB,EAAmBjK,OAAO9xB,GAAWA,EAAO2O,SAAWwpB,GAAal8B,QAE7EiG,QAAQ6H,OAAOnB,GAEnBA,CAAO,EAEDqzB,GAAoBznB,EAAS9M,EACjD,CACD,sBAAAs0B,CAAuBE,EAAmBlb,EAAQmb,GAC9C,MAAMC,EAAoBF,EACrBz9B,QAAQ49B,GAAkBA,EAAc1tB,SAAWwpB,GAAamE,UAChEpjC,QAAO,CAACqjC,EAAWC,IACpBD,EAAY,IACLA,EACH,CACIjB,YAAakB,EAAap3B,SAC1Bm2B,SAAUiB,EAAax8B,OACvBq7B,YAAac,EACbnb,SACAtX,QAAS8yB,EAAa9yB,QACtBiF,OAAQ6tB,EAAa7tB,UAI9B,IACG8tB,EAAaP,EACdz9B,QAAQ49B,GAAkBA,EAAc1tB,SAAWwpB,GAAal8B,QAChE/C,QAAO,CAACwjC,EAAWC,IACpBD,EAAY,IACLA,EACH,CACIpB,YAAaqB,EAAUv3B,SACvBi2B,YAAac,EACbziC,KAAMsnB,EAAOtnB,KACbgQ,QAASizB,EAAUjzB,WAI5B,IACGkzB,EAAYV,EAAkB,GAWpC,MAVe,CACXlb,SACAqa,YAAac,EACbZ,SAAUqB,EAAU58B,OACpBs7B,YAAasB,EAAUx3B,SACvBg3B,oBACAK,aACA/yB,QAASkzB,EAAUlzB,QACnBiF,OAAQiuB,EAAUjuB,OAGzB,CACD,oBAAAosB,CAAqBH,EAAkB75B,EAAQ45B,GAC3C,OAAO,IAAIz4B,SAAQ,CAACC,EAAS4H,KACzB,GAAwC,IAApC4wB,EAAkB/B,cAElB,YADA7uB,IAIJ,IAAIivB,EAAe,EACnB,MAaM6D,EAAWj6B,aAbH,KACVo2B,GAHc,IAId,MAAM8B,EAAmB1+B,KAAK88B,kCAAkC0B,EAAkB75B,GAClF,GAAI+5B,EAAiBhhC,OAAS,EAC1Bsb,cAAcynB,GACd16B,EAAQ24B,QAEP,GAAI9B,IAAiB2B,EAAkB/B,eAAiB,KAGzD,OAFAxjB,cAAcynB,QACd9yB,GAEH,GAba,IAe4B,GAErD,CACD,cAAA+yB,CAAe/7B,EAAQ04B,GACnB,GAAsB,iBAAX14B,EAkBN,CACD,IAAIg8B,EAKAA,EAJCriC,MAAMC,QAAQoG,GAIDA,EAHA,CAACA,GAWnB,OAN2Bg8B,EAAY7jC,QAAO,CAAC8jC,EAASv+B,KACpD,MAAMw+B,EAAYxD,EAAgBh7B,QAAQy+B,GAC/B9gC,KAAK+gC,cAAc1+B,EAAQy+B,EAAiBxD,OAAOt0B,YAE9D,OAAO43B,EAAQviC,OAAOwiC,EAAU,GACjC,GAEN,CAhCG,GAAe,QAAXl8B,EACA,MAAO,IAAI04B,GAEV,GAAe,SAAX14B,EAAmB,CACxB,MAAMq8B,EAAe3D,EAChB5jB,MAAMzW,GAAMA,EAAEs6B,OAAOt0B,SAASi4B,UACnC,GAAID,EACA,MAAO,CAACA,GAEZ,QAA2B78B,IAAvBk5B,EAAgB,GAChB,MAAO,CAACA,EAAgB,GAE/B,MACI,GAAe,aAAX14B,EACL,OAAO04B,EAAgBh7B,QAAO,EAAGi7B,YAAaA,EAAOt0B,SAASK,SAAWrJ,KAAKgJ,SAASK,SAmB/F,MAAO,EACV,CACD,aAAA03B,CAAcG,EAAgBC,GAC1B,OAAOnhC,KAAKohC,cAAcF,EAAgBC,EAC7C,CACD,WAAAE,CAAYnE,EAAcsB,GACtB,OAAOx+B,KAAKohC,cAAclE,EAAcsB,EAC3C,CACD,aAAA4C,CAAc/+B,EAAQi/B,GAalB,OAZoB1kC,OAAOC,KAAKwF,GAC3BA,QAAQk/B,QACep9B,IAAjB9B,EAAOk/B,IACU,OAAjBl/B,EAAOk/B,IACiB,mBAAjBl/B,EAAOk/B,IACL,iBAATA,GACS,iBAATA,GACS,OAATA,GACS,cAATA,GACS,eAATA,GACY,MAAZA,EAAK,KAEG7L,OAAO6L,IACtB,IAAIC,EACJ,MAAMC,EAAcp/B,EAAOk/B,GACrBG,EAAkBJ,EAAWC,GACnC,OAAQA,GACJ,IAAK,cACDC,GAAWC,GAAe,IAAI/L,OAAOiM,IACzBD,GAAmB,IAAI71B,SAAS81B,KAE5C,MACJ,IAAK,QACDH,EAAUjM,GAASmM,GAAmB,CAAE,EAAED,GAAe,CAAE,GAC3D,MACJ,QACID,EAAU/R,OAAOgS,GAAaz8B,gBAAkByqB,OAAOiS,GAAiB18B,cAEhF,OAAOw8B,CAAO,GAErB,CACD,UAAAjE,CAAWL,GACP,QAAqB/4B,IAAjB+4B,EACA,OAAOl9B,KAAKD,KAAKw9B,aAKrB,OAHgBv9B,KAAKD,KAAKw9B,aAAal7B,QAAQuiB,GACpC5kB,KAAKqhC,YAAYnE,EAActY,IAG7C,CACD,qBAAA6Y,CAAsByD,GAClB,MACMU,EADa5hC,KAAKD,KAAKq9B,aACM/6B,QAAQi7B,GAChCt9B,KAAK+gC,cAAcG,EAAgB5D,EAAOt0B,YAErD,GAA+B,IAA3B44B,EAAgBlkC,OAChB,MAAO,GAEX,IAAImkC,EAAsB,CAAA,EAY1B,OAX+B,IAA3BD,EAAgBlkC,OAChBmkC,EAAsBD,EAAgB,GAAGpb,QAGzCob,EAAgBxiC,SAASk+B,IACrB1gC,OAAOC,KAAKygC,EAAO9W,SAASpnB,SAAS0iC,IACjC,MAAMld,EAAS0Y,EAAO9W,QAAQsb,GAC9BD,EAAoBjd,EAAOmd,YAAcnd,CAAM,GACjD,IAGHhoB,OAAOC,KAAKglC,GACdz6B,KAAKpK,GACC6kC,EAAoB7kC,IAElC,CACD,UAAAogC,CAAWF,GACP,MAAMD,EAAUj9B,KAAKD,KAAKq9B,aAC1B,YAAqBj5B,IAAjB+4B,EACOD,EAAQ71B,KAAKk2B,IACT,CAAEA,SAAQ9W,QAAS,OAG3ByW,EAAQngC,QAAO,CAACklC,EAAM9mB,KACzB,MACM+mB,EADmBrlC,OAAOD,OAAOue,EAAQsL,SACNnkB,QAAQuiB,GACtC5kB,KAAKqhC,YAAYnE,EAActY,KAK1C,OAHIqd,EAAgBvkC,OAAS,GACzBskC,EAAK9hC,KAAK,CAAEo9B,OAAQpiB,EAASsL,QAASyb,IAEnCD,CAAI,GACZ,GACN,CACD,iCAAAlF,CAAkCI,EAAcv4B,GAC5C,MAAM+5B,EAAmB1+B,KAAKo9B,WAAWF,GACzC,OAAOl9B,KAAK0gC,eAAe/7B,EAAQ+5B,EACtC,EAGL,MAAMwD,GACF/gC,SACAmgC,WACAhI,aACA,WAAA/8B,CAAY4E,EAAUmgC,EAAYhI,GAC9Bt5B,KAAKmB,SAAWA,EAChBnB,KAAKshC,WAAaA,EAClBthC,KAAKs5B,aAAeA,CACvB,CACD,UAAI8C,GACA,IAAKp8B,KAAKshC,WAAWlF,OACjB,MAAM,IAAIv8B,MAAM,aAEpB,OAAOG,KAAKshC,WAAWlF,MAC1B,CACD,aAAI7vB,GAAc,OAAOvM,KAAKs5B,aAAa/sB,WAAa,CAAA,CAAK,CAC7D,aAAI41B,GAAc,OAAOniC,KAAKs5B,aAAa6I,SAAY,CACvD,YAAIn5B,GACA,IAAKhJ,KAAKs5B,aAAatwB,SACnB,MAAM,IAAInJ,MAAM,eAEpB,OAAOG,KAAKs5B,aAAatwB,QAC5B,CACD,KAAA+E,GACI/N,KAAKmB,SAASm8B,OAAO8E,wBAAwBpiC,KAAKshC,WAAYthC,KAAKs5B,aACtE,CACD,IAAAp5B,CAAKqO,GACDvO,KAAKmB,SAASm8B,OAAO+E,iBAAiBriC,KAAKshC,WAAYthC,KAAKs5B,aAAc/qB,EAC7E,EAGL,MAAM+zB,GACFnhC,SACAmgC,WACAiB,eACAh2B,UACAvD,SACA,WAAAzM,CAAY4E,EAAUmgC,EAAYiB,GAC9BviC,KAAKmB,SAAWA,EAChBnB,KAAKshC,WAAaA,EAClBthC,KAAKuiC,eAAiBA,EACtBviC,KAAKuM,UAAYg2B,EAAeh2B,UAChCvM,KAAKgJ,SAAWu5B,EAAev5B,QAClC,CACD,MAAAw5B,GACIxiC,KAAKmB,SAASm8B,OAAOmF,sBAAsBziC,KAAKuiC,eAAgBviC,KAAKshC,WAAY,GACpF,CACD,cAAAoB,CAAeC,GACX3iC,KAAKmB,SAASm8B,OAAOmF,sBAAsBziC,KAAKuiC,eAAgBviC,KAAKshC,WAAYqB,EACpF,CACD,MAAAh1B,CAAOgE,GACH3R,KAAKmB,SAASm8B,OAAOsF,cAAc5iC,KAAKuiC,eAAgBviC,KAAKshC,WAAY3vB,EAC5E,EA0CL,MAAMkxB,GACF7lC,IACAmE,SACAmgC,WACA,WAAA/kC,CAAYS,EAAKmE,EAAUmgC,GACvBthC,KAAKhD,IAAMA,EACXgD,KAAKmB,SAAWA,EAChBnB,KAAKshC,WAAaA,CACrB,CACD,aAAAwB,GAEI,OADgB9iC,KAAKmB,SAASm8B,OAAOyF,oBAAoB/iC,KAAKshC,WAAYthC,KAAKhD,KAChEoK,KAAK8L,GACT,IAAIgvB,GAAmBliC,KAAKmB,SAAUnB,KAAKshC,WAAYpuB,IAErE,CACD,KAAAnF,GACI/N,KAAKmB,SAASm8B,OAAO0F,sBAAsBhjC,KAAKshC,WAAYthC,KAAKhD,IACpE,CACD,IAAAkD,CAAKqO,GACDvO,KAAKmB,SAASm8B,OAAO2F,SAASjjC,KAAKshC,WAAY/yB,EAAM,CAACvO,KAAKhD,KAC9D,EAGL,MAAMkmC,GACFC,UACAC,YACAC,QACA/lC,KACA,WAAAf,CAAY4mC,EAAWC,EAAaC,GAChCrjC,KAAKmjC,UAAYA,EACjBnjC,KAAKojC,YAAcA,EACnBpjC,KAAKqjC,QAAUA,EACfrjC,KAAK1C,KAAO0C,KAAKojC,YAAY1jC,WAAWpC,IAC3C,CACD,QAAAgmC,CAAStmC,GACL,MAAMumC,EAAQvjC,KAAKmjC,UAAU7F,OAAOkG,cAAcxjC,KAAKojC,aACvD,OAAIpmC,EACIumC,EAAMlwB,QAAQrW,IAAQ,EACf,IAAI6lC,GAAa7lC,EAAKgD,KAAKmjC,UAAWnjC,KAAKojC,kBAEtD,EAGOG,EAAMn8B,KAAK+6B,GACP,IAAIU,GAAaV,EAAWniC,KAAKmjC,UAAWnjC,KAAKojC,cAGnE,CACD,MAAAT,CAAO3lC,GACH,OAAOgD,KAAKsjC,SAAStmC,EACxB,CACD,aAAA8lC,GAEI,OADgB9iC,KAAKmjC,UAAU7F,OAAOyF,oBAAoB/iC,KAAKojC,aAChDh8B,KAAK8L,GACT,IAAIgvB,GAAmBliC,KAAKmjC,UAAWnjC,KAAKojC,YAAalwB,IAEvE,CACD,cAAIxT,GACA,MAAM+jC,EAAOzjC,KAAKojC,YAAY1jC,WAC9B,MAAO,CACHgkC,QAASD,EAAKC,QACdtmC,YAAaqmC,EAAKrmC,YAClBumC,YAAaF,EAAKE,YAClBrmC,KAAMmmC,EAAKnmC,KACXwhC,YAAa2E,EAAK3E,YAClB8E,QAASH,EAAKG,QACd/E,kBAAmB4E,EAAK5E,kBACxBE,MAAO0E,EAAK1E,OAAOC,SAE1B,CACD,KAAAjxB,GACI/N,KAAKmjC,UAAU7F,OAAO0F,sBAAsBhjC,KAAKojC,aACjDpjC,KAAKqjC,QAAQQ,WAAW7jC,KAAKojC,YAAY1jC,YAAY,EACxD,CACD,IAAAQ,CAAKqO,EAAM+0B,GACP,GAAwB,iBAAbA,IAA0BhlC,MAAMC,QAAQ+kC,SAA0Bn/B,IAAbm/B,EAC5D,MAAM,IAAIzjC,MAAM,qDAEpB,GAAoB,iBAAT0O,EACP,MAAM,IAAI1O,MAAM,8CAEpBG,KAAKmjC,UAAU7F,OAAO2F,SAASjjC,KAAKojC,YAAa70B,EAAM+0B,EAC1D,CACD,gBAAAQ,CAAiBxC,GACbthC,KAAKojC,YAAc9B,CACtB,EAGL,MAAMyC,GACF5iC,SACA6iC,iBACAC,UACAnhB,YAAc,EACdohB,uBAAyB,CAAA,EACzB,WAAA3nC,CAAY4E,EAAU6iC,GAClBhkC,KAAKmB,SAAWA,EAChBnB,KAAKgkC,iBAAmBA,EACxBhkC,KAAKikC,UAAY,IAxID,MACpB9iC,SACAm8B,OACA,WAAA/gC,CAAY4E,EAAUm8B,GAClBt9B,KAAKmB,SAAWA,EAChBnB,KAAKs9B,OAASA,EACdn8B,EAASm8B,OAAO6G,cAAa,CAACC,EAAIC,IAAOrkC,KAAKskC,iBAAiBF,EAAIC,KACnEljC,EAASm8B,OAAOiH,YAAW,CAACrxB,EAAKmxB,IAAOrkC,KAAKwkC,eAAetxB,EAAKmxB,KACjEljC,EAASm8B,OAAOmH,cAAa,CAACvxB,EAAKmxB,IAAOrkC,KAAK0kC,iBAAiBxxB,EAAKmxB,IACxE,CACD,gBAAAC,CAAiB/B,EAAgBjB,GAC7B,IAAMA,IACFA,EAAWqD,iBACsD,mBAA1DrD,EAAWqD,gBAAgBC,2BAClC,OAEJ,MAAMpsB,EAAU,IAAI8pB,GAAQtiC,KAAKmB,SAAUmgC,EAAYiB,GACvDjB,EAAWqD,gBAAgBC,2BAA2BpsB,EACzD,CACD,cAAAgsB,CAAelL,EAAcgI,GACzB,IAAMA,IACFA,EAAWqD,iBACoD,mBAAxDrD,EAAWqD,gBAAgBE,yBAClC,OAEJ,MAAM3xB,EAAM,IAAIgvB,GAAmBliC,KAAKmB,SAAUmgC,EAAYhI,GAC9DgI,EAAWqD,gBAAgBE,yBAAyB3xB,EACvD,CACD,gBAAAwxB,CAAiBpL,EAAcgI,GAC3B,IAAMA,IACFA,EAAWqD,iBACsD,mBAA1DrD,EAAWqD,gBAAgBG,2BAClC,OAEJ,MAAM5xB,EAAM,IAAIgvB,GAAmBliC,KAAKmB,SAAUmgC,EAAYhI,GAC9DgI,EAAWqD,gBAAgBG,2BAA2B5xB,EACzD,GAoG0C/R,EAAUnB,MACjDA,KAAKmB,SAASm8B,OAAOyH,UAAU/kC,KAAKglC,gBAAgBlvB,KAAK9V,MAC5D,CACD,YAAAilC,CAAaC,EAAWl6B,EAAW0wB,EAAiBC,EAAewJ,GAuD/D,OAAO1J,GAtDS,IAAI31B,SAAQ,CAACC,EAAS4H,KAClC,IAAKu3B,EAED,YADAv3B,EAAO,0MAGX,IAAIy3B,EAOJ,GALIA,EADqB,iBAAdF,EACkB,CAAE5nC,KAAM,GAAK4nC,GAGb,IAAKA,IAE7BE,EAAuB9nC,KACxB,OAAOqQ,EAAO,4GAA4G9G,KAAKC,UAAUs+B,MAI7I,GAF0BplC,KAAKgkC,iBAAiBqB,UAC3CC,MAAMC,GAAiBA,EAAa7lC,WAAWpC,OAAS8nC,EAAuB9nC,OAEhF,OAAOqQ,EAAO,2BAA2By3B,EAAuB9nC,uEAEpE8nC,EAAuBvG,mBAAoB,EACtC7zB,IACDA,EAAY,CAAA,GAEoC,mBAAzCA,EAAU45B,6BACjB55B,EAAU45B,2BAA8BpsB,IACpCA,EAAQgqB,QAAQ,GAGxB,MAAMlB,EAAathC,KAAKgkC,iBAAiBz4B,IAAI,CACzC7L,WAAY0lC,EACZT,gBAAiB35B,EACjBw6B,cAAe,CAAE,IAErBxlC,KAAKmB,SAASm8B,OAAO2H,aAAa3D,GAC7B9zB,MAAK,KACN,IAAIi4B,EACAN,GACAM,EAAmBN,EACnBA,EAAerB,iBAAiBxC,IAGhCmE,EAAmB,IAAIvC,GAAaljC,KAAKmB,SAAUmgC,EAAYthC,MAEnEshC,EAAWlF,OAASqJ,EACpB1/B,EAAQ0/B,EAAiB,IAExBjjC,OAAOuJ,IACJu1B,EAAWoE,QACX1lC,KAAKgkC,iBAAiB2B,OAAOrE,EAAWoE,QAE5C/3B,EAAO5B,EAAI,GACb,IAEoB2vB,EAAiBC,EAC9C,CACD,QAAAiK,CAASpH,EAAkBhzB,GACvB,IAAKgzB,EACD,OAAO14B,QAAQ6H,OAAO,2JAE1B,GAAwB,mBAAbnC,EACP,OAAO1F,QAAQ6H,OAAO,6DAAyF,iBAArB6wB,EAAgCA,EAAmBA,EAAiBlhC,QAElK,MAAMuoC,EAA0B/9B,MAAOzK,EAASyoC,KAC5C,IACI,MAAMliC,EAAS4H,EAASnO,EAAQ0oC,KAAM1oC,EAAQ2L,UAC9C,GAAIpF,GAAiC,mBAAhBA,EAAO4J,KAAqB,CAE7Cs4B,OAAe3hC,QADWP,EAE7B,MAEGkiC,OAAe3hC,EAAWP,EAEjC,CACD,MAAOc,GACHohC,EAAephC,GAAK,GAAIA,GAAK,GAChC,GAGL,OADAmhC,EAAwBG,aAAex6B,EAChCxL,KAAKimC,aAAazH,EAAkBqH,EAC9C,CACD,aAAAK,CAAc1H,EAAkBhzB,GAC5B,IAAKgzB,EACD,OAAO14B,QAAQ6H,OAAO,2JAE1B,GAAwB,mBAAbnC,EACP,OAAO1F,QAAQ6H,OAAO,6DAAyF,iBAArB6wB,EAAgCA,EAAmBA,EAAiBlhC,QAElK,MAAM6oC,EAAkBr+B,MAAOzK,EAASyoC,KACpC,IACI,IAAIM,GAAe,EACnB,MAAMhuB,EAAWxU,IACRwiC,GACDN,OAAe3hC,EAAWP,GAE9BwiC,GAAe,CAAI,EAEjB96B,EAAS5G,IACN0hC,IACI1hC,IACDA,EAAI,IAERohC,EAAephC,EAAGA,IAEtB0hC,GAAe,CAAI,EAEjBC,EAAe76B,EAASnO,EAAQ0oC,KAAM1oC,EAAQ2L,SAAUoP,EAAS9M,GACnE+6B,GAA6C,mBAAtBA,EAAa74B,MACpC64B,EACK74B,KAAK4K,GACL5V,MAAM8I,EAElB,CACD,MAAO5G,GACHohC,EAAephC,OAAGP,EACrB,GAGL,OADAgiC,EAAgBG,kBAAoB96B,EAC7BxL,KAAKimC,aAAazH,EAAkB2H,EAC9C,CACD,gBAAMtC,CAAW3G,EAAcqJ,GAAY,GACvC,QAAqBpiC,IAAjB+4B,EACA,OAAOp3B,QAAQ6H,OAAO,gGAE1B,GAA4B,mBAAjBuvB,EAEP,kBADMl9B,KAAKwmC,wBAAwBtJ,EAAcqJ,GAGrD,IAAI/H,EAOJ,GALIA,EADwB,iBAAjBtB,EACY,CAAE5/B,KAAM4/B,GAGRA,OAEO/4B,IAA1Bq6B,EAAiBlhC,KACjB,OAAOwI,QAAQ6H,OAAO,kFAE1B,MAAM84B,EAAoBzmC,KAAKgkC,iBAAiBqB,UAAU5rB,MAAM8rB,GACrDA,EAAa7lC,WAAWpC,OAASkhC,EAAiBlhC,OACjDioC,EAAa7lC,WAAWm/B,oBAAqB,KAAW0H,IAEpE,IAAKE,EACD,OAAO3gC,QAAQ6H,OAAO,uBAAuB6wB,EAAiBlhC,wEAE5D0C,KAAK0mC,uBAAuB,CAACD,GACtC,CACD,6BAAMD,CAAwBG,EAAiBJ,GAC3C,MAAMK,EAA2B5mC,KAAKgkC,iBAAiBqB,UAClDhjC,QAAQsa,GAAOgqB,EAAgBhqB,EAAGjd,cAClC2C,QAAQkjC,IAAkBA,EAAa7lC,WAAWm/B,oBAAqB,KAAW0H,IACvF,IAAKK,GAAgE,IAApCA,EAAyBlpC,OACtD,OAAOoI,QAAQ6H,OAAO,oBAAoB44B,EAAY,SAAW,oDAE/DvmC,KAAK0mC,uBAAuBE,EACrC,CACD,sBAAAF,CAAuBG,GACnB,MAAMC,EAAsB,GAW5B,OAVAD,EAAgBznC,SAASwlB,IACrB,MAAM1V,EAAUlP,KAAKmB,SAASm8B,OAAOuG,WAAWjf,GAC3CpX,MAAK,KACFoX,EAAO8gB,QACP1lC,KAAKgkC,iBAAiB2B,OAAO/gB,EAAO8gB,OACvC,IAELoB,EAAoB5mC,KAAKgP,GACzBlP,KAAK+mC,4BAA4BniB,EAAOllB,WAAWpC,KAAM4R,EAAQ,IAE9DpJ,QAAQof,IAAI4hB,EACtB,CACD,iCAAMC,CAA4BC,EAAY93B,GAC1C,MAAM8E,EAAU,IAAIlO,SAASC,GAAYO,WAAWP,EAAS,OAC7D/F,KAAKkkC,uBAAuB8C,GAAclhC,QAAQ25B,KAAK,CAACvwB,EAAS8E,IAAUxG,MAAK,YACrExN,KAAKkkC,uBAAuB8C,EAAW,GAErD,CACD,kBAAMf,CAAarhB,EAAQqiB,GACvB,IAAIzI,EAOJ,GALIA,EADkB,iBAAX5Z,EACY,CAAEtnB,KAAM,GAAKsnB,GAGb,IAAKA,IAEvB4Z,EAAiBlhC,KAClB,OAAOwI,QAAQ6H,OAAO,qGAAqG9G,KAAKC,UAAU8d,MAE9I,MAAMsiB,EAAuBlnC,KAAKkkC,uBAAuB1F,EAAiBlhC,WACtC,IAAzB4pC,SACDA,EAIV,GAF0BlnC,KAAKgkC,iBAAiBqB,UAC3CC,MAAMC,GAAiBA,EAAa7lC,WAAWpC,OAASkhC,EAAiBlhC,OAE1E,OAAOwI,QAAQ6H,OAAO,2BAA2B6wB,EAAiBlhC,uEAEtE,GAAIkhC,EAAiBK,kBACjB,OAAO/4B,QAAQ6H,OAAO,4JAA4J6wB,EAAiBlhC,8EAEvM,MAAMgkC,EAAathC,KAAKgkC,iBAAiBz4B,IAAI,CACzC7L,WAAY8+B,EACZyI,cACAzB,cAAe,CAAE,IAErB,OAAOxlC,KAAKmB,SAASm8B,OAAOsI,SAAStE,GAChC9+B,OAAOuJ,IAIR,MAHIu1B,GAAYoE,QACZ1lC,KAAKgkC,iBAAiB2B,OAAOrE,EAAWoE,QAEtC35B,CAAG,GAEhB,CACD,eAAAi5B,CAAgBmC,EAAiBzH,EAAc0H,GACtCD,GAAoBA,EAAgBF,aAGzCE,EAAgBF,YAAYG,GAAgB,CAACr7B,EAAKnI,KAC9C,GAAImI,QACA,GAAIA,EAAIuB,SAAkC,iBAAhBvB,EAAIuB,QAC1BvB,EAAMA,EAAIuB,aAET,GAAmB,iBAARvB,EACZ,IACIA,EAAMlF,KAAKC,UAAUiF,EACxB,CACD,MAAOs7B,GACHt7B,EAAM,oEAAoEnP,OAAOC,KAAKkP,IACzF,CAGJnI,GAGsB,iBAAXA,GAAuBtF,MAAMC,QAAQqF,MACjDA,EAAS,CAAE0jC,OAAQ1jC,IAHnBA,EAAS,CAAA,EAKb5D,KAAKmB,SAASm8B,OAAOiK,uBAAuBJ,EAAiBzH,EAAc3zB,EAAKnI,EAAO,GAE9F,EAGL,MAAM4jC,GACFC,QAAU,CAAA,EACV,WAAAlrC,CAAYmrC,EAAK1+B,EAAUzB,GACvBvH,KAAKynC,QAAQlK,WAAa,WACtB,OAAOmK,EAAIlK,mBAAmBx9B,KAC1C,EACQA,KAAKynC,QAAQE,WAAa,WACtB,OAAOD,EAAIlK,mBAAmBx9B,MAAMqC,QAAQhD,GAAMA,EAAEw/B,mBAChE,EACY71B,GACAhJ,KAAK4nC,qBAAqB5+B,GAE1BzB,IACAA,EAAWiV,UAAS,KAChBxc,KAAK6nC,QAAQtgC,EAAW,IAE5BvH,KAAK6nC,QAAQtgC,GAEpB,CACD,MAAAugC,GACI,OAAO9nC,KAAKynC,OACf,CACD,OAAAI,CAAQtgC,GACJ,IAAKA,EACD,OAEJ,MAAM0W,EAAmB1W,GAAY0W,iBAC/BjV,EAAWpM,OAAOumB,OAAO,GAAIlF,GAAoB,CAAE,EAAE,CAAE5U,OAAQ9B,GAAY8B,SACjFrJ,KAAK4nC,qBAAqB5+B,EAC7B,CACD,oBAAA4+B,CAAqB3pB,GACjBrhB,OAAOC,KAAKohB,GAAkB7e,SAASpC,IACnCgD,KAAKynC,QAAQzqC,GAAOihB,EAAiBjhB,EAAI,IAE7CgD,KAAKynC,QAAQM,KAAO9pB,EAAiB8pB,KACrC/nC,KAAKynC,QAAQz+B,SAAWiV,EAAiBjV,SACzChJ,KAAKynC,QAAQp1B,YAAc4L,EAAiB5L,aAAemB,EAAO,IAClExT,KAAKynC,QAAQpuB,gBAAkB4E,EAAiB5E,gBAChDrZ,KAAKynC,QAAQO,IAAM/pB,EAAiB+pB,KAAO/pB,EAAiBpP,SAAW6E,KAAKu0B,MAAsB,KAAhBv0B,KAAKC,UACvF3T,KAAKynC,QAAQS,QAAUjqB,EAAiBiqB,QACxCloC,KAAKynC,QAAQU,YAAclqB,EAAiBkqB,YAC5CnoC,KAAKynC,QAAQW,OAASnqB,EAAiBmqB,OACvCpoC,KAAKynC,QAAQzvB,SAAWiG,EAAiBjG,SACzChY,KAAKynC,QAAQxG,QAAUhjB,EAAiBgjB,UAAW,EACnDjhC,KAAKynC,QAAQxhC,IAAMgY,EAAiBhY,IACpCjG,KAAKynC,QAAQ1+B,QAAUkV,EAAiBlV,QACxC/I,KAAKynC,QAAQp+B,OAAS4U,EAAiB5U,MAC1C,EAGL,MAAMg/B,GAAyBzjB,IACpB,IACAA,EACHma,MAAOna,EAAOma,MAAMC,UAAY,CAAE,IAG1C,MAAMsJ,GACFp7B,OACAw6B,IACAzK,QAAU,CAAA,EACVsL,SACAC,aAAe,CAAA,EACfx9B,UAAY4B,IACZ,WAAArQ,CAAY2Q,EAAQw6B,GAChB1nC,KAAKkN,OAASA,EACdlN,KAAK0nC,IAAMA,EACX,MAAMr+B,EAASrJ,KAAK0nC,IAAI1+B,SAASK,OACjCrJ,KAAKuoC,SAAW,CACZtoC,GAAIoJ,EACJmd,QAAS,CAAE,EACXxd,SAAUhJ,KAAK0nC,IAAI1+B,SACnBy/B,QAASzoC,KAAK0nC,IAAIgB,mBAEtB1oC,KAAKi9B,QAAQ5zB,GAAUrJ,KAAKuoC,QAC/B,CACD,SAAAI,CAAU93B,EAAM+3B,GACZ5oC,KAAKkN,OAAOqE,MAAM,iBAAiBq3B,KACnC,MAAM1tB,EAAUlb,KAAKi9B,QAAQ2L,GAC7B,GAAI1tB,EACA,OAAOA,EAAQjb,GAEnB,MAAMwoC,EAAU,IAAIjB,GAAgBxnC,KAAK0nC,IAAK72B,GACxCg4B,EAAc,CAChB5oC,GAAI2oC,EACJpiB,QAAS,CAAE,EACXxd,SAAUy/B,EAAQX,SAClBW,WAIJ,OAFAzoC,KAAKi9B,QAAQ2L,GAAYC,EACzB7oC,KAAKgL,UAAUoB,QAAQ,gBAAiBy8B,EAAY7/B,UAC7C4/B,CACV,CACD,gBAAAE,CAAiB7oC,EAAI0R,GACjB,MAAM2rB,EAASt9B,KAAKi9B,QAAQh9B,GACvBq9B,GAKDt9B,KAAKkN,OAAOqE,MAAM,mBAAmBtR,KAEzCrD,OAAOC,KAAKygC,EAAO9W,SAASpnB,SAAS2pC,IACjC/oC,KAAKgpC,mBAAmB/oC,EAAI8oC,EAAS,WAElC/oC,KAAKi9B,QAAQh9B,GACpBD,KAAKgL,UAAUoB,QAAQ,kBAAmBkxB,EAAOt0B,SAAU2I,IAVvD3R,KAAKkN,OAAOgL,KAAK,uBAAuBjY,eAAgB4G,KAAKC,UAAUlK,OAAOC,KAAKmD,KAAKi9B,YAW/F,CACD,eAAAgM,CAAgBL,EAAUhkB,GACtB,MAAM0Y,EAASt9B,KAAKi9B,QAAQ2L,GAC5B,IAAKtL,EACD,MAAM,IAAIz9B,MAAM,0BAEpB,GAAIy9B,EAAO9W,QAAQ5B,EAAO3kB,IACtB,OAEJ,MAAM8hC,EAAa/hC,KAAKkpC,uBAAuBtkB,GACzCukB,EAAOnpC,KACPw+B,EAAmB,CACrBuD,aACAqH,UAAWxkB,EAAO3kB,GAClB3C,KAAMsnB,EAAOtnB,KACbqmC,YAAa/e,EAAOykB,aACpBjsC,YAAawnB,EAAOxnB,YACpB4qB,QAASpD,EAAOoD,QAChB8W,YAAala,EAAO0kB,cAAgB,GACpC5F,QAAS9e,EAAO2kB,gBAChB3F,QAAShf,EAAO4kB,iBAChB3K,uBAA2C,IAAjBja,EAAOma,OAAwBna,EAAOma,MAAMkF,UACtElF,MAAOna,EAAOma,OAAS,CAAE,EACzB3B,WAAY,IACD+L,EAAKM,mBAAmB1H,IAGvCvD,EAAiB8K,aAAe9K,EAAiBM,YACjDN,EAAiB6K,aAAe7K,EAAiBmF,YACjDnF,EAAiBxW,QAAUwW,EAAiBxW,QAC5CsV,EAAO9W,QAAQ5B,EAAO3kB,IAAMu+B,EAC5B,MAAMkL,EAAyBrB,GAAsB7J,GAOrD,OANKx+B,KAAKwoC,aAAazG,KACnB/hC,KAAKwoC,aAAazG,GAAc,EAChC/hC,KAAKgL,UAAUoB,QAAQ,gBAAiBs9B,IAE5C1pC,KAAKwoC,aAAazG,GAAc/hC,KAAKwoC,aAAazG,GAAc,EAChE/hC,KAAKgL,UAAUoB,QAAQ,sBAAuBkxB,EAAOt0B,SAAU0gC,GACxDlL,CACV,CACD,kBAAAwK,CAAmBJ,EAAUG,GACzB,MAAMzL,EAASt9B,KAAKi9B,QAAQ2L,GAC5B,IAAKtL,EACD,MAAM,IAAIz9B,MAAM,0BAEpB,MAAM+kB,EAAS0Y,EAAO9W,QAAQuiB,UACvBzL,EAAO9W,QAAQuiB,GACtB,MAAMW,EAAyBrB,GAAsBzjB,GACrD5kB,KAAKwoC,aAAa5jB,EAAOmd,YAAc/hC,KAAKwoC,aAAa5jB,EAAOmd,YAAc,EACjC,IAAzC/hC,KAAKwoC,aAAa5jB,EAAOmd,aACzB/hC,KAAKgL,UAAUoB,QAAQ,kBAAmBs9B,GAE9C1pC,KAAKgL,UAAUoB,QAAQ,wBAAyBkxB,EAAOt0B,SAAU0gC,EACpE,CACD,UAAAnM,GACI,OAAOv9B,KAAK2pC,0BAA0B/sC,OAAOD,OAAOqD,KAAKi9B,UAAU71B,IAAIihC,GAC1E,CACD,UAAAjL,GACI,OAAOxgC,OAAOD,OAAOqD,KAAKi9B,SAAS71B,IAAIpH,KAAK4pC,4BAC/C,CACD,aAAA7L,CAAcvyB,GACV,MAAMq+B,EAAkB7pC,KAAKgL,UAAUO,IAAI,gBAAiBC,GACtDs+B,EAA6B9pC,KAAKo9B,aAAah2B,KAAKpE,GAAMA,EAAEgG,WAClE,OAAOhJ,KAAK+pC,6BAA6BF,EAAiBC,EAA4Bt+B,EACzF,CACD,aAAAmyB,CAAcnyB,GACV,MAAMq+B,EAAkB7pC,KAAKgL,UAAUO,IAAI,gBAAiBC,GACtDw+B,EAAkBhqC,KAAKu9B,aAC7B,OAAOv9B,KAAK+pC,6BAA6BF,EAAiBG,EAAiBx+B,EAC9E,CACD,mBAAA2yB,CAAoB3yB,GAChB,MAAMq+B,EAAkB7pC,KAAKgL,UAAUO,IAAI,sBAAuBC,GAClE,IAAIy+B,GAAc,EAClB,MAAMhN,EAAUj9B,KAAKo9B,aAWrB,OAVA92B,YAAW,KACP22B,EAAQ79B,SAASk+B,IACb,MAAM9W,EAAU8W,EAAO9W,QACvB5pB,OAAOC,KAAK2pB,GAASpnB,SAAS2pC,IACrBkB,GACDz+B,EAAS8xB,EAAOt0B,SAAUwd,EAAQuiB,GACrC,GACH,GACJ,GACH,GACI,KACHkB,GAAc,EACdJ,GAAiB,CAExB,CACD,eAAAhM,CAAgBryB,GAEZ,OADwBxL,KAAKgL,UAAUO,IAAI,kBAAmBC,EAEjE,CACD,eAAAyyB,CAAgBzyB,GAEZ,OADwBxL,KAAKgL,UAAUO,IAAI,kBAAmBC,EAEjE,CACD,qBAAA6yB,CAAsB7yB,GAElB,OADwBxL,KAAKgL,UAAUO,IAAI,wBAAyBC,EAEvE,CACD,aAAA0+B,CAAcjqC,GAEV,GADeD,KAAKi9B,QAAQh9B,GAI5B,OAAOD,KAAK4pC,4BAA4B5pC,KAAKi9B,QAAQh9B,GACxD,CACD,KAAAo0B,GACIz3B,OAAOC,KAAKmD,KAAKi9B,SAAS79B,SAASpC,IAC/BgD,KAAK8oC,iBAAiB9rC,EAAK,QAAQ,IAEvCgD,KAAKi9B,QAAU,CACX,CAACj9B,KAAKuoC,SAAStoC,IAAKD,KAAKuoC,UAE7BvoC,KAAKwoC,aAAe,EACvB,CACD,sBAAAU,CAAuBiB,GACnB,MAAMzG,EAAUyG,EAAWZ,iBAAmB,GACxC3F,EAAUuG,EAAWX,kBAAoB,GAC/C,OAAQW,EAAW7sC,KAAOomC,EAAUE,GAAS5+B,aAChD,CACD,kBAAAykC,CAAmB1H,GACf,MAAMqI,EAAa,GAQnB,OAPAxtC,OAAOD,OAAOqD,KAAKi9B,SAAS79B,SAASk+B,IACjC1gC,OAAOD,OAAO2gC,EAAO9W,SAASpnB,SAASwlB,IAC/BA,EAAOmd,aAAeA,GACtBqI,EAAWlqC,KAAKo9B,EAAOt0B,SAC1B,GACH,IAECohC,CACV,CACD,4BAAAL,CAA6BF,EAAiBQ,EAAoB7+B,GAC9D,IAAIy+B,GAAc,EAQlB,OAPA3jC,YAAW,KACP+jC,EAAmBjrC,SAASkrC,IACnBL,GACDz+B,EAAS8+B,EACZ,GACH,GACH,GACI,KACHL,GAAc,EACdJ,GAAiB,CAExB,CACD,2BAAAD,CAA4BtM,GACxB,MAAMiN,EAAgB,CAAA,EAItB,OAHA3tC,OAAOgyB,QAAQ0O,EAAO9W,SAASpnB,SAAQ,EAAE9B,EAAMsnB,MAC3C2lB,EAAcjtC,GAAQ+qC,GAAsBzjB,EAAO,IAEhD,IACA0Y,EACH9W,QAAS+jB,EAEhB,CACD,yBAAAZ,CAA0B1M,GAItB,OAHgBrgC,OAAOD,OAAOsgC,GAASngC,QAAO,CAACytC,EAAejN,IACnD,IAAIiN,KAAkB3tC,OAAOD,OAAO2gC,EAAO9W,WACnD,GAEN,EAGL,MAAMgkB,GACFC,OAAS,EACTjkB,QAAU,GACV,GAAAjb,CAAIqZ,GAIA,OAHAA,EAAO8gB,OAASjW,OAAOzvB,KAAKyqC,QAC5BzqC,KAAKyqC,QAAU,EACfzqC,KAAKwmB,QAAQtmB,KAAK0kB,GACXA,CACV,CACD,MAAA+gB,CAAOD,GACH,GAAsB,iBAAXA,EACP,OAAO,IAAIgF,UAAU,sBAEzB1qC,KAAKwmB,QAAUxmB,KAAKwmB,QAAQnkB,QAAQhD,GACzBA,EAAEqmC,SAAWA,GAE3B,CACD,OAAAiF,CAAQ1qC,GACJ,GAAkB,iBAAPA,EAGX,OAAOD,KAAKwmB,QAAQ/M,MAAMpa,GACfA,EAAEqmC,SAAWzlC,GAE3B,CACD,OAAAolC,GACI,OAAOrlC,KAAKwmB,QAAQpf,KAAK/H,GAAMA,GAClC,CACD,MAAA3B,GACI,OAAOsC,KAAKwmB,QAAQ9oB,MACvB,CACD,KAAA22B,GACIr0B,KAAKwmB,QAAU,EAClB,EAGL,MAAMokB,GAAuB,wBACvBC,GAAqB,sBACrBC,GAAuB,wBAC7B,MAAMC,GACFrjC,QACAsjC,WACAhH,iBACAiH,4BAA8B,6CAC9BjgC,UAAY4B,IACZs+B,aAAe,EACf,WAAA3uC,CAAYmL,EAASsjC,EAAYhH,GAC7BhkC,KAAK0H,QAAUA,EACf1H,KAAKgrC,WAAaA,EAClBhrC,KAAKgkC,iBAAmBA,EACxBt8B,EAAQyL,GAAG,gBAAiBhU,IACxBa,KAAKmrC,kBAAkBhsC,EAAI,IAE/BuI,EAAQyL,GAAG,mBAAoBhU,IAC3Ba,KAAKorC,qBAAqBjsC,EAAI,GAErC,CACD,qBAAAsjC,CAAsBF,EAAgB8I,EAAiB1I,GAInD,GAHsB,iBAAXA,IACPA,EAAS,IAEiD,iBAAnD0I,EAAgB7F,cAAc8F,iBACrC,MAAM,IAAIZ,UAAU,sDAExB,IAAKpsC,MAAMC,QAAQ8sC,EAAgB7F,cAAc+F,wBAC7C,MAAM,IAAIb,UAAU,iDAExB,MAAMc,EAAWxrC,KAAKyrC,YAAYJ,EAAiB1I,GAC7C3lC,EAAMulC,EAAepjC,IAAIusC,gBACzBpS,EAAe,CACjBr5B,GAAIjD,EACJuP,UAAWg2B,EAAeh2B,UAC1BvD,SAAUu5B,EAAev5B,SACzBm5B,UAAWQ,EACX6I,WACAG,aAAcpJ,EAAepjC,KAEjCksC,EAAgB7F,cAAc8F,iBAAiBtuC,GAAOs8B,EACtDt5B,KAAK0H,QAAQc,kBAAkB,CAC3BpM,KAAM,WACNsvC,gBAAiB1uC,EACjB4uC,UAAWJ,IAEfxrC,KAAKgL,UAAUoB,QAAQy+B,GAAoBvR,EAAc+R,EAC5D,CACD,aAAAzI,CAAcL,EAAgB8I,EAAiB15B,GACrB,iBAAXA,IACPA,EAAS,IAEb3R,KAAK6rC,uBAAuB,kCAAoCl6B,EAAQ4wB,EAAepjC,IAAIusC,gBAC9F,CACD,QAAAzI,CAASoI,EAAiB98B,EAAM+0B,GAC5B,GAA+B,iBAApB+H,IAAiC/sC,MAAMC,QAAQ8sC,EAAgB7F,cAAc+F,wBACpF,OAEJ,GAAoB,iBAATh9B,EACP,MAAM,IAAI1O,MAAM,8CAEI,iBAAbyjC,EACPA,EAAW,CAACA,KAENhlC,MAAMC,QAAQ+kC,IAAaA,EAAS5lC,QAAU,KACpD4lC,EAAW,IAEM+H,EAAgB7F,cAAc+F,uBAC9ClpC,QAAQypC,IACJxI,GAAgC,IAApBA,EAAS5lC,QAGnB4lC,EAASjwB,QAAQy4B,EAAG9uC,MAAQ,IACpCoK,KAAK0kC,GACGA,EAAGN,WAEDpsC,SAASosC,IAClB,MAAMtlB,EAAiB,CACnB9pB,KAAM,UACNwvC,UAAWJ,EACXj9B,QAEJvO,KAAK0H,QAAQc,kBAAkB0d,EAAe,GAErD,CACD,gBAAAmc,CAAiBzd,EAAQ0U,EAAc/qB,GACnC,GAAoB,iBAATA,EACP,MAAM,IAAI1O,MAAM,8CAEpB,MAAM2O,EAAc,CAChBpS,KAAM,OACNsvC,gBAAiBpS,EAAar5B,GAC9BsO,QAEJvO,KAAK0H,QAAQc,kBAAkBgG,EAClC,CACD,uBAAA4zB,CAAwBiJ,EAAiB/R,GACjC+R,EAAgB7F,cAAc8F,yBACvBD,EAAgB7F,cAAc8F,iBAAiBhS,EAAar5B,IAEvE,MAAM8rC,EAA0B,CAC5B3vC,KAAM,oBACNsvC,gBAAiBpS,EAAar5B,GAC9B0R,OAAQ,yCAEZ3R,KAAK0H,QAAQc,kBAAkBujC,GAC/BzS,EAAatwB,SACbhJ,KAAKgL,UAAUoB,QAAQ0+B,GAAsBxR,EAAc+R,EAC9D,CACD,0BAAAW,CAA2BX,EAAiBlJ,GACxC,GAA+B,iBAApBkJ,GAA0F,iBAAnDA,EAAgB7F,cAAc8F,iBAC5E,OAEJ,IAAKD,EAAgB7F,cAAc8F,iBAC/B,OAEJ,MAAMA,EAAmBD,EAAgB7F,cAAc8F,iBACvD,IAAIW,EAAuBrvC,OAAOC,KAAKyuC,GAClClkC,KAAKpK,GACCsuC,EAAiBtuC,KAEH,iBAAdmlC,IACP8J,EAAuBA,EAAqB5pC,QAAQ6Q,GACzCA,EAAIivB,YAAcA,KAGjC8J,EAAqB7sC,SAASk6B,WACnBgS,EAAiBhS,EAAar5B,IACrC,MAAMisC,EAAO,CACT9vC,KAAM,oBACNsvC,gBAAiBpS,EAAar5B,GAC9B0R,OAAQ,mDAAqD2nB,EAAakS,UAE9ExrC,KAAK0H,QAAQc,kBAAkB0jC,EAAK,GAE3C,CACD,mBAAAnJ,CAAoBsI,EAAiBlJ,GACjC,GAA+B,iBAApBkJ,EACP,MAAO,GAEX,IAAIvI,EAAgB,GACpB,IAAKuI,EAAgB7F,cAAc8F,iBAC/B,MAAO,GAEX,MAAMA,EAAmBD,EAAgB7F,cAAc8F,iBACjDa,EAAmBvvC,OAAOC,KAAKyuC,GAChClkC,KAAKpK,GACCsuC,EAAiBtuC,KAU5B,OAPI8lC,EADqB,iBAAdX,EACSgK,EAGAA,EAAiB9pC,QAAQ6Q,GAC9BA,EAAIivB,YAAcA,IAG1BW,CACV,CACD,aAAAU,CAAc6H,GACV,GAA+B,iBAApBA,EACP,MAAO,GAEX,IAAKA,EAAgB7F,cAAc8F,iBAC/B,MAAO,GAEX,MAAMA,EAAmBD,EAAgB7F,cAAc8F,iBACjDa,EAAmBvvC,OAAOC,KAAKyuC,GAChClkC,KAAKpK,GACCsuC,EAAiBtuC,KAEtB4G,EAAS,GAUf,OATAuoC,EAAiB/sC,SAAS8T,IACtB,IAAIyvB,EAAS,GACM,iBAARzvB,GAA6C,iBAAlBA,EAAIivB,YACtCQ,EAASzvB,EAAIivB,YAEe,IAA5Bv+B,EAAOyP,QAAQsvB,IACf/+B,EAAO1D,KAAKyiC,EACf,IAEE/+B,CACV,CACD,UAAA2gC,CAAW/4B,GACPxL,KAAKosC,4BAA4BvB,GAAoBr/B,EACxD,CACD,YAAA24B,CAAa34B,GACTxL,KAAKosC,4BAA4BxB,GAAsBp/B,EAC1D,CACD,YAAAi5B,CAAaj5B,GACTxL,KAAKosC,4BAA4BtB,GAAsBt/B,EAC1D,CACD,oBAAA4/B,CAAqBjsC,GACjB,MAAMksC,EAAkBrrC,KAAKgkC,iBAAiB2G,QAAQxrC,EAAIktC,WAC1D,GAAmC,iBAAxBltC,EAAIusC,iBACgB,iBAApBL,EACP,OAEJ,IAAKA,EAAgB7F,cAAc8F,iBAC/B,OAEJ,GAAmF,iBAAxED,EAAgB7F,cAAc8F,iBAAiBnsC,EAAIusC,iBAC1D,OAEJ,MAAMpS,EAAe+R,EAAgB7F,cAAc8F,iBAAiBnsC,EAAIusC,wBACjEL,EAAgB7F,cAAc8F,iBAAiBnsC,EAAIusC,iBAC1D1rC,KAAKgL,UAAUoB,QAAQ0+B,GAAsBxR,EAAc+R,EAC9D,CACD,2BAAAe,CAA4BE,EAAWC,GACnCvsC,KAAKgL,UAAUO,IAAI+gC,EAAWC,EACjC,CACD,eAAAC,GACI,OAAOxsC,KAAKkrC,eAAiB,EAChC,CACD,iBAAAC,CAAkBhsC,GACd,MAAMstC,EAASzsC,KAAKgrC,WAAWd,cAAc/qC,EAAIutC,WAC3C1jC,EAAWyjC,GAAQzjC,UAAY,GAC/Bu5B,EAAiB,CACnBpjC,MACAoN,UAAWpN,EAAIwtC,cAAgB,CAAE,EACjC3jC,YAEEqiC,EAAkBrrC,KAAKgkC,iBAAiB2G,QAAQxrC,EAAIktC,WAC1D,QAAwBloC,IAApBknC,EAKAA,EAAgB7F,cAAc8F,kBAC9BD,EAAgB7F,cAAc8F,iBAAiBnsC,EAAIusC,iBACnD1rC,KAAK6rC,uBAAuB,0BAA4B1sC,EAAIusC,gBAAkB,mBAAoBvsC,EAAIusC,iBAG1G1rC,KAAKgL,UAAUoB,QAAQw+B,GAAsBrI,EAAgB8I,OAV7D,CACI,MAAM1tB,EAAW,qBAAuBxe,EAAIktC,UAAY,mBACxDrsC,KAAK6rC,uBAAuBluB,EAAUxe,EAAIusC,gBAE7C,CAOJ,CACD,sBAAAG,CAAuBl6B,EAAQi7B,GAC3B,MAAMC,EAAe,CACjBzwC,KAAM,QACN0wC,WAAY9sC,KAAKirC,4BACjBt5B,SACAsL,WAAY2vB,GAEhB5sC,KAAK0H,QAAQc,kBAAkBqkC,EAClC,CACD,WAAApB,CAAYJ,EAAiBlJ,GAIzB,GAHyB,iBAAdA,IACPA,EAAY,KAEXkJ,EAAgB7F,cAAc+F,uBAC/B,MAAM,IAAI1rC,MAAM,aAAawrC,EAAgB3rC,WAAWpC,sCAE5D,MAAMyvC,EAAe1B,EAAgB7F,cAAc+F,uBAAuBlpC,QAAQsgC,GACvEA,EAAO3lC,MAAQmlC,IACvB,GACH,IAAIqJ,EAAYuB,EAAeA,EAAavB,cAAWrnC,EAKvD,MAJwB,iBAAbqnC,GAAsC,KAAbA,IAChCA,EAAWxrC,KAAKwsC,kBAChBnB,EAAgB7F,cAAc+F,uBAAuBrrC,KAAK,CAAElD,IAAKmlC,EAAWqJ,cAEzEA,CACV,EAGL,MAAMwB,GACFtlC,QACAulC,iBACAjJ,iBACA92B,OACAlC,UAAY4B,IACZq3B,UACA,WAAA1nC,CAAYmL,EAASulC,EAAkBjJ,EAAkB92B,GACrDlN,KAAK0H,QAAUA,EACf1H,KAAKitC,iBAAmBA,EACxBjtC,KAAKgkC,iBAAmBA,EACxBhkC,KAAKkN,OAASA,EACdlN,KAAKikC,UAAY,IAAI8G,GAAgBrjC,EAASulC,EAAkBjJ,GAChEhkC,KAAK0H,QAAQyL,GAAG,UAAWhU,GAAQa,KAAKktC,oBAAoB/tC,IAC/D,CACD,YAAA8lC,CAAa3D,GAGT,OAFAA,EAAWkE,cAAc8F,iBAAmB,GAC5ChK,EAAWkE,cAAc+F,uBAAyB,GAC3CvrC,KAAK4lC,SAAStE,GAAY,EACpC,CACD,QAAAsE,CAAStE,EAAY6L,GACjB,MAAM1Q,EAAY6E,EAAW5hC,WACvBq/B,EAAQniC,OAAOumB,OAAO,CAAE,EAAE,CAAE6b,SAAUvC,EAAUsC,OAAS,CAAA,GAAM,CAAEkF,UAAWkJ,IAAe,IAC3FC,EAAc,CAChBhxC,KAAM,WACNoqB,QAAS,CAAC,CACFvmB,GAAIqhC,EAAWoE,OACfpoC,KAAMm/B,EAAUn/B,KAChB+rC,aAAc5M,EAAUkH,YACxBvmC,YAAaq/B,EAAUr/B,YACvB4qB,QAASyU,EAAUzU,QACnB+W,QACAuK,aAAc7M,EAAUqC,aAAerC,EAAU6M,aACjDC,gBAAiB9M,EAAUiH,QAC3B8F,iBAAkB/M,EAAUmH,QAC5ByJ,kBAAclpC,KAG1B,OAAOnE,KAAK0H,QAAQQ,KAAKklC,EAAa,CAAErE,SAAUzH,EAAWoE,SACxDl4B,MAAK,KACNxN,KAAKkN,OAAOqE,MAAM,qBAAuB+vB,EAAW5hC,WAAWpC,KAAO,YAAcgkC,EAAWoE,OAAO,IAErGljC,OAAOrD,IAER,MADAa,KAAKkN,OAAOgL,KAAK,6BAA6BopB,EAAW5hC,WAAWpC,gBAAgBgkC,EAAWoE,YAAY7+B,KAAKC,UAAU3H,MACpHA,CAAG,GAEhB,CACD,SAAA4lC,CAAUv5B,GACNxL,KAAKgL,UAAUO,IAAI,YAAaC,EACnC,CACD,sBAAA+7B,CAAuB3iB,EAAQ8a,EAAc3zB,EAAKnI,GAC9C,IAAIzE,EAEAA,EADA4M,GAAe,KAARA,EACD,CACF3P,KAAM,QACN6gB,WAAYyiB,EACZoN,WAAY,0BACZn7B,OAAQ5F,EACR1O,QAASuG,EACTwF,aAASjF,GAIP,CACF/H,KAAM,QACNkxC,cAAe5N,EACft2B,QAASpJ,KAAK0H,QAAQ2B,OACtBzF,SACAqZ,gBAAY9Y,GAGpBnE,KAAK0H,QAAQc,kBAAkBrJ,EAClC,CACD,gBAAM0kC,CAAWjf,GACb,MAAMzlB,EAAM,CACR/C,KAAM,aACNoqB,QAAS,CAAC5B,EAAO8gB,eAEf1lC,KAAK0H,QAAQQ,KAAK/I,EAC3B,CACD,aAAAqkC,CAAc5e,GACV,OAAO5kB,KAAKikC,UAAUT,cAAc5e,EACvC,CACD,mBAAAme,CAAoBne,EAAQud,GACxB,OAAOniC,KAAKikC,UAAUlB,oBAAoBne,EAAQud,EACrD,CACD,qBAAAa,CAAsBpe,EAAQud,GAC1BniC,KAAKikC,UAAU+H,2BAA2BpnB,EAAQud,EACrD,CACD,QAAAc,CAASre,EAAQrW,EAAM+0B,GACnBtjC,KAAKikC,UAAUhB,SAASre,EAAQrW,EAAM+0B,EACzC,CACD,gBAAAjB,CAAiBzd,EAAQ0U,EAAc/qB,GACnCvO,KAAKikC,UAAU5B,iBAAiBzd,EAAQ0U,EAAc/qB,EACzD,CACD,uBAAA6zB,CAAwBxd,EAAQ0U,GAC5Bt5B,KAAKikC,UAAU7B,wBAAwBxd,EAAQ0U,EAClD,CACD,qBAAAmJ,CAAsBF,EAAgB3d,EAAQ+d,GAC1C3iC,KAAKikC,UAAUxB,sBAAsBF,EAAgB3d,EAAQ+d,EAChE,CACD,aAAAC,CAAcL,EAAgB3d,EAAQjT,GAClC3R,KAAKikC,UAAUrB,cAAcL,EAAgB3d,EAAQjT,EACxD,CACD,YAAAwyB,CAAa34B,GACTxL,KAAKikC,UAAUE,aAAa34B,EAC/B,CACD,UAAA+4B,CAAW/4B,GACPxL,KAAKikC,UAAUM,WAAW/4B,EAC7B,CACD,YAAAi5B,CAAaj5B,GACTxL,KAAKikC,UAAUQ,aAAaj5B,EAC/B,CACD,mBAAA0hC,CAAoB/tC,GAChB,MAAMugC,EAAevgC,EAAImuC,cACnBC,EAAWpuC,EAAIutC,UACf3D,EAAW5pC,EAAIktC,UACftG,EAAO5mC,EAAIwtC,aAEX/nB,EADa5kB,KAAKgkC,iBAAiBqB,UACfhjC,QAAQhD,GACvBA,EAAEqmC,SAAWqD,IACrB,GACH,QAAe5kC,IAAXygB,EACA,OAEJ,MAAM5X,EAAShN,KAAKitC,iBAAiB/C,cAAcqD,IAAWvkC,SACxDo+B,EAAiB,CAAErB,OAAM/8B,SAAUgE,GACzChN,KAAKgL,UAAUoB,QAAQ,YAAawY,EAAQ8a,EAAc0H,EAC7D,EAGL,MAAMoG,GACFxC,WACAyC,iBACA,oBAAIC,GACA,OAAO1tC,KAAKytC,iBAAiBE,OAAOphC,WAAa,CAAA,CACpD,CACD,WAAI0wB,GACA,OAAOj9B,KAAKytC,iBAAiBG,eAAe9wC,QAAO,CAACmgC,EAAS7R,KACzD,GAAIA,EAAKwhB,eAAgB,CACrB,MAAMtP,EAASt9B,KAAKgrC,WAAWd,cAAc9e,EAAKwd,WAAW5/B,SACzDs0B,GACAL,EAAQ/8B,KAAKo9B,EAEpB,CACD,OAAOL,CAAO,GACf,GACN,CACD,kBAAI4Q,GACA,OAAO7tC,KAAKi9B,QAAQ,EACvB,CACD,UAAIb,GACA,OAAOp8B,KAAKytC,iBAAiB7oB,MAChC,CACD,WAAAroB,CAAYyuC,EAAYyC,GACpBztC,KAAKgrC,WAAaA,EAClBhrC,KAAKytC,iBAAmBA,CAC3B,CACD,MAAAK,CAAOC,GACH,GAA4B,mBAAjBA,EACP,MAAM,IAAIrD,UAAU,yCAExB1qC,KAAKytC,iBAAiBxrB,SAAS6rB,OAAO5tC,KAAK6tC,GACU,IAAjD/tC,KAAKytC,iBAAiBxrB,SAAS6rB,OAAOpwC,QAAgBsC,KAAKytC,iBAAiBO,OAAOz/B,KAAK7Q,OAAS,GACjGsC,KAAKytC,iBAAiBO,OAAOz/B,KAAKnP,SAAS6uC,IACvCF,EAAaE,EAAS,GAGjC,CACD,QAAAC,CAASC,GACL,GAA8B,mBAAnBA,EACP,MAAM,IAAIzD,UAAU,oCAExB1qC,KAAKytC,iBAAiBxrB,SAASisB,SAAShuC,KAAKiuC,EAChD,CACD,QAAAC,CAAS5iC,GACR,CACD,WAAA6iC,CAAY7iC,GACR,GAAwB,mBAAbA,EACP,MAAM,IAAIk/B,UAAU,oCAExB1qC,KAAKytC,iBAAiBxrB,SAASosB,YAAYnuC,KAAKsL,EACnD,CACD,KAAAuC,GACI/N,KAAKytC,iBAAiB1/B,OACzB,CACD,kBAAAugC,CAAmBC,GACfvuC,KAAKytC,iBAAmBc,CAC3B,EAGL,MAAMC,GACFhnC,OACAksB,MAAQ,GACR+a,WAAa,GACb,WAAAlyC,CAAYiL,GACRxH,KAAKwH,OAASA,CACjB,CACD,GAAA+D,CAAIW,GACA,MAAMjM,EAAKuT,EAAO,IAClBxT,KAAK0zB,MAAMxzB,KAAK,CAAED,KAAIiM,YACtB,MAAMwiC,EAAYpoC,YAAW,KACzB,MAAMqoC,EAAa3uC,KAAK0zB,MAAMkb,WAAW1xB,GAAUA,EAAMjd,KAAOA,IAC5D0uC,EAAa,GAGjB3uC,KAAK0zB,MAAMnG,OAAOohB,EAAY,EAAE,GACjC3uC,KAAKwH,OAAOqnC,gBACf7uC,KAAKyuC,WAAWvuC,KAAKwuC,EACxB,CACD,KAAAI,GACI,MAAMC,EAAW/uC,KAAK0zB,MAAMtsB,KAAK8V,GAAUA,EAAMhR,UAIjD,OAHAlM,KAAKyuC,WAAWrvC,SAASa,GAAO+Y,cAAc/Y,KAC9CD,KAAK0zB,MAAQ,GACb1zB,KAAKyuC,WAAa,GACXM,CACV,EAGL,MAAMC,GAAyB,iBACzBC,GAAoB,aACpBC,GAAqB,uBAGrBC,GAA2B,kBACjC,MAAMC,GACF1nC,QACAsjC,WACA99B,OACAmiC,kBAAoB,CAAA,EACpBC,WAAa,IAAId,GAAW,CAAEK,eAAgB,MAC9CU,4BAA8B,CAAA,EAC9BC,gBAAkB,EAClB,WAAAjzC,CAAYmL,EAASsjC,EAAY99B,GAC7BlN,KAAK0H,QAAUA,EACf1H,KAAKgrC,WAAaA,EAClBhrC,KAAKkN,OAASA,EACdxF,EAAQyL,GAAG,aAAcnT,KAAKyvC,kBAC9B/nC,EAAQyL,GAAG,QAASnT,KAAK0vC,iBACzBhoC,EAAQyL,GAAG,yBAA0BnT,KAAK2vC,4BAC7C,CACD,SAAA3W,CAAUqS,EAAiBsC,EAAQxR,EAAe/jB,EAAS9M,EAAOwa,GAC9D,GAA6B,IAAzBqW,EAAcz+B,OAMd,YALA4N,EAAM,CACFsZ,OAAQymB,EACRpM,YAAa0O,EAAOphC,UACpBe,QAAS4hC,GAAqB,qDAItC,MAAMU,EAAc5vC,KAAK6vC,8BACnBC,EAAa9vC,KAAK+vC,qBAAqBH,EAAavE,EAAiBsC,EAAQv1B,EAAS9M,EAAOqiC,EAAOpR,uBAAyB,IAAOzW,GAChH,iBAAfgqB,EAQX3T,EAAc/8B,SAASuF,IACnB,MAAMikC,EAAWjkC,EAAO24B,OAAOr9B,GACzB2kB,EAASjgB,EAAO6hB,QAAQ/M,MAAMpa,GAAMA,EAAE/B,OAAS+tC,EAAgB/tC,OACrE,IAAKsnB,EAED,YADA5kB,KAAKkN,OAAO5B,MAAM,uBAAuB+/B,EAAgB/tC,mBAAmBqH,EAAO24B,OAAOr9B,MAG9F6vC,EAAWlC,eAAe1tC,KAAK,CAC3B0oC,WACAgE,oBAAgBzoC,IAEpB,MAAMhF,EAAM,CACR/C,KAAM,YACN4zC,UAAWpH,EACXyD,UAAWznB,EAAOwkB,UAClBuD,aAAcgB,EAAOphC,WAEzBvM,KAAK0H,QAAQQ,KAAK/I,EAAK,CAAEypC,WAAUgH,gBAC9BpiC,MAAMnO,GAAMW,KAAKyvC,iBAAiBpwC,KAClCmD,OAAOuJ,GAAQ/L,KAAKiwC,uBAAuBlkC,IAAK,IA1BrDT,EAAM,CACFsZ,OAAQymB,EACRpM,YAAa0O,EAAOphC,UACpBe,QAAS4hC,GAAqB,2CAyBzC,CACD,kBAAAgB,GACI,MAAM3tC,EAAW3F,OAAOD,OAAOqD,KAAKqvC,mBAGpC,OAFArvC,KAAKqvC,kBAAoB,GACzBrvC,KAAKuvC,4BAA8B,GAC5BhtC,CACV,CACD,uBAAA4tC,GACI,OAAOnwC,KAAKsvC,WAAWR,OAC1B,CACD,2BAAAe,GACI,MAAM30B,EAAUlb,KAAKwvC,gBAErB,OADAxvC,KAAKwvC,iBAAmB,EACjBt0B,CACV,CACD,oBAAA60B,CAAqBH,EAAahrB,EAAQ+oB,EAAQv1B,EAAS9M,EAAO0I,EAAS8R,GACvE,MAAMsqB,EAAW,CACbC,SAAUT,EACVr9B,OAAQy8B,GACRpqB,SACA+oB,SACAv1B,UACA9M,QACAsiC,eAAgB,GAChB3rB,SAAU,CACN6rB,OAAQhoB,GAAa7D,SAAS6rB,QAAU,GACxCI,SAAUpoB,GAAa7D,SAASisB,UAAY,GAC5CG,YAAavoB,GAAa7D,SAASosB,aAAe,IAEtDL,OAAQ,CACJz/B,KAAM,GACN+hC,QAAS,IAEb5B,eAAWvqC,EACX4J,MAAO,IAAM/N,KAAKuwC,kBAAkBX,GACpCtW,aAAcxT,GAAawT,cAsC/B,OApCKxT,IACG6nB,EAAOG,QACPsC,EAASnuB,SAAS6rB,OAAO5tC,KAAKytC,EAAOG,QAErCH,EAAOO,UACPkC,EAASnuB,SAASisB,SAAShuC,KAAKytC,EAAOO,UAEvCP,EAAOU,aACP+B,EAASnuB,SAASosB,YAAYnuC,KAAKytC,EAAOU,cAGlDruC,KAAKqvC,kBAAkBO,GAAeQ,EACtCA,EAAS1B,UAAYpoC,YAAW,KAC5B,QAA4CnC,IAAxCnE,KAAKqvC,kBAAkBO,GACvB,OAEJ,MAAME,EAAa9vC,KAAKqvC,kBAAkBO,GACtCE,EAAWv9B,SAAWy8B,IACtB1jC,EAAM,CACFsZ,SACAqa,YAAa0O,EAAOphC,UACpBe,QAAS4hC,GAAqB,yCAA2Cl7B,EAAU,gBAEhFhU,KAAKqvC,kBAAkBO,IAEzBE,EAAWv9B,SAAW08B,IAAqBa,EAAWlC,eAAelwC,OAAS,IACnFoyC,EAAWlC,eAAiBkC,EAAWlC,eAAevrC,QAAQi7B,QACjB,IAA1BA,EAAOsP,wBAEnBkD,EAAWpB,UACdoB,EAAWlC,eAAelwC,QAAU,IACpCsC,KAAKwwC,qBAAqBV,UACnB9vC,KAAKqvC,kBAAkBO,IAErC,GACF57B,GACIo8B,CACV,CACDH,uBAA0BQ,IACtB,MAAMpzB,EAAMozB,EAAc/yB,KACpBkyB,EAAcvyB,EAAIuyB,YAClBE,EAAa9vC,KAAKqvC,kBAAkBO,GAC1C,GAA0B,iBAAfE,IAGXA,EAAWlC,eAAiBkC,EAAWlC,eAAevrC,QAAQi7B,GACnDA,EAAOsL,WAAavrB,EAAIurB,WAE/BkH,EAAWlC,eAAelwC,QAAU,GAAG,CAEvC,GADAuW,aAAa67B,EAAWpB,WACpBoB,EAAWv9B,SAAWy8B,GAAwB,CAC9C,MAAMr9B,EAA0C,iBAAzB8+B,EAAc9+B,QAAgD,KAAzB8+B,EAAc9+B,OACtE,oBAAsB8+B,EAAc9+B,OAAS,KAC7C,oBACE++B,EAAkD,iBAAhCZ,EAAWnC,OAAOphC,UACtC1F,KAAKC,UAAUgpC,EAAWnC,OAAOphC,WACjC,KACJujC,EAAWxkC,MAAM,CACbgC,QA1JS,yBA0JuBqE,EAAS,gBAAkB++B,EAC3DzR,YAAa6Q,EAAWnC,OAAOphC,UAC/BqY,OAAQkrB,EAAWlrB,QAE1B,MACQkrB,EAAWv9B,SAAW08B,IAC3BjvC,KAAKwwC,qBAAqBV,UAEvB9vC,KAAKqvC,kBAAkBO,EACjC,GAELH,iBAAoBtwC,IAChB,MAAMywC,EAAczwC,EAAIue,KAAKkyB,YACvBE,EAAa9vC,KAAKqvC,kBAAkBO,GAC1C,GAA0B,iBAAfE,EACP,OAEJ,MAAMlH,EAAWzpC,EAAIue,KAAKkrB,SACpB+H,EAAkBb,EAAWlC,eAC9BvrC,QAAQi7B,GACFA,EAAOsL,WAAaA,IAC5B,GACH,GAA+B,iBAApB+H,EACP,OAEJA,EAAgB/D,eAAiBztC,EAAIusC,gBACrC1rC,KAAKuvC,4BAA4BpwC,EAAIusC,iBAAmBkE,EACxD,MAAMgB,EAAmBd,EAAWv9B,SAAWy8B,GAE/C,GADAc,EAAWv9B,OAAS08B,GAChB2B,EAAiB,CACjB,IAAI/nC,GAAY,EACZqK,EAAM48B,EAAWxW,aACjBpmB,GACAA,EAAIo7B,mBAAmBwB,GACvBA,EAAW13B,QAAQlF,GACnBrK,GAAY,IAGZqK,EAAM,IAAIs6B,GAAiBxtC,KAAKgrC,WAAY8E,GAC5CA,EAAWxW,aAAepmB,EAC1B48B,EAAW13B,QAAQlF,IAEvB,IAAK,MAAMiP,KAAW2tB,EAAW7tB,SAASosB,YACtC,IACIlsB,EAAQjP,EAAI26B,eAAgBhlC,EAC/B,CACD,MAAOnE,GACN,CAER,GAELgrC,gBAAmBvwC,IACf,MAAMywC,EAAc5vC,KAAKuvC,4BAA4BpwC,EAAIusC,iBACzD,QAA2B,IAAhBkE,EACP,OAEJ,MAAMtW,EAAet5B,KAAKqvC,kBAAkBO,GAC5C,GAA4B,iBAAjBtW,EACP,OAEJ,MAAMuX,EAAsBvX,EAAasU,eAAevrC,QAAQW,GACrDA,EAAE4pC,iBAAmBztC,EAAIusC,kBAEpC,GAAmC,IAA/BmF,EAAoBnzC,OACpB,OAEJ,MAAMozC,EAAgB3xC,EAAI4xC,IACpBC,EAAkBH,EAAoB,GAAGjI,SACzCtL,EAASt9B,KAAKgrC,WAAWd,cAAc8G,GACvCC,EAAqB,KAChB,CACH1iC,KAAMpP,EAAIoP,KACV+uB,OAAQA,GAAQt0B,UAAY,CAAE,EAC9B0kC,iBAAkBpU,EAAaqU,OAAOphC,UACtCe,aAASnJ,EACT+sC,QAASJ,IAGXK,EAAiB7X,EAAarX,SAAS6rB,OACvCsD,EAAa9X,EAAa0U,OAAOz/B,KACnC4iC,EAAezzC,OAAS,EACxByzC,EAAe/xC,SAASoM,IACI,mBAAbA,GACPA,EAASylC,IACZ,IAILG,EAAWlxC,KAAK+wC,IACnB,EAELtB,4BAA+BxwC,IAC3B,MAAMywC,EAAc5vC,KAAKuvC,4BAA4BpwC,EAAIusC,iBACzD,QAA2B,IAAhBkE,EACP,OAEJ,MAAMtW,EAAet5B,KAAKqvC,kBAAkBO,GAC5C,GAA4B,iBAAjBtW,EACP,OAEJ,MAAM+X,EAAoB/X,EAAasU,eAAelwC,OAAS,EAC/D47B,EAAasU,eAAiBtU,EAAasU,eAAevrC,QAAQi7B,GAC1DA,EAAOsP,iBAAmBztC,EAAIusC,kBAC9BpS,EAAa0U,OAAOsC,QAAQpwC,KAAKo9B,EAAOsL,WACjC,KAMXtP,EAAasU,eAAelwC,SAAW2zC,IAGvC/X,EAAasU,eAAelwC,QAAU,IACtCsC,KAAKsvC,WAAW/jC,IAAI+tB,GACpBrlB,aAAaqlB,EAAaoV,WAC1B1uC,KAAKwwC,qBAAqBlX,UACnBt5B,KAAKqvC,kBAAkBO,WAE3B5vC,KAAKuvC,4BAA4BpwC,EAAIusC,iBAAgB,EAEhE,oBAAA8E,CAAqBlX,EAAc3nB,GAC/B,MAAM2/B,EAAehY,EAAa0U,OAAOsC,QAAQ5yC,OAC3C6zC,EAAmBD,EAAe,EAAKhY,EAAa0U,OAAOsC,QAAQgB,EAAe,GAAK,KAC7F,IAAIE,OACoBrtC,IAApBotC,GAA4D,iBAApBA,IACxCC,EAAgBxxC,KAAKgrC,WAAWd,cAAcqH,IAAkBvoC,UAAY,IAEhFswB,EAAarX,SAASisB,SAAS9uC,SAASoM,IACZ,mBAAbA,GAGXA,EAAS,CACL8B,QAASqE,GA9RQ,kBA+RjB+7B,iBAAkBpU,EAAaqU,OAAOphC,WAAa,CAAE,EACrD+wB,OAAQkU,EACRpV,OAAQ9C,EAAa1U,QACvB,GAET,CACD,iBAAA2rB,CAAkBX,GACd,MAAMtW,EAAet5B,KAAKqvC,kBAAkBO,GAChB,iBAAjBtW,IAGXA,EAAasU,eAAexuC,SAASk+B,SACI,IAA1BA,EAAOsP,iBAGlBtT,EAAa0U,OAAOsC,QAAQpwC,KAAKo9B,EAAOsL,UACxC5oC,KAAK0H,QAAQc,kBAAkB,CAC3BpM,KAAM,cACNsvC,gBAAiBpO,EAAOsP,eACxBE,WAAY,GACZn7B,OAAQw9B,YAELnvC,KAAKuvC,4BAA4BjS,EAAOsP,gBAAe,IAElEtT,EAAasU,eAAiB,GAC9B5tC,KAAKwwC,qBAAqBlX,EAAc6V,WACjCnvC,KAAKqvC,kBAAkBO,GACjC,EAGL,MAAM6B,GACF/pC,QACAsjC,WACA99B,OACA+2B,UACA,WAAA1nC,CAAYmL,EAASsjC,EAAY99B,GAC7BlN,KAAK0H,QAAUA,EACf1H,KAAKgrC,WAAaA,EAClBhrC,KAAKkN,OAASA,EACdxF,EAAQyL,GAAG,cAAehU,GAAQa,KAAK0xC,gBAAgBvyC,KACvDuI,EAAQyL,GAAG,gBAAiBhU,GAAQa,KAAK2xC,kBAAkBxyC,KAC3DuI,EAAQyL,GAAG,iBAAkBhU,GAAQa,KAAK4xC,0BAA0BzyC,KACpEuI,EAAQyL,GAAG,mBAAoBhU,GAAQa,KAAK6xC,4BAA4B1yC,KACxEa,KAAKikC,UAAY,IAAImL,GAAgB1nC,EAASsjC,EAAY99B,EAC7D,CACD,SAAA8rB,CAAUoD,EAAQr4B,EAASo4B,EAAe/jB,EAAS9M,EAAOwa,GACtD9lB,KAAKikC,UAAUjL,UAAUoD,EAAQr4B,EAASo4B,EAAe/jB,EAAS9M,EAAOwa,EAC5E,CACD,MAAAY,CAAOzmB,EAAI2kB,EAAQmhB,EAAMphC,GACrB,MAAMikC,EAAWjkC,EAAO1E,GAElBd,EAAM,CACR/C,KAAM,OACN4zC,UAAWpH,EACXyD,UAJaznB,EAAOwkB,UAKpBuD,aAAc5G,GAElB,OAAO/lC,KAAK0H,QAAQQ,KAAK/I,EAAK,CAAEugC,aAAcz/B,EAAI2oC,aAC7Cp7B,MAAMnO,GAAMW,KAAK8xC,oBAAoBzyC,KACrCmD,OAAOuJ,GAAQ/L,KAAK+xC,sBAAsBhmC,IAClD,CACD,kBAAAmkC,GACI,OAAOlwC,KAAKikC,UAAUiM,oBACzB,CACD,uBAAAC,GACI,OAAOnwC,KAAKikC,UAAUkM,yBACzB,CACD,eAAAuB,CAAgBvyC,GACZ,MAAM6yC,EAAY7yC,EAAI8yC,YAChBC,EAAW/yC,EAAIiT,SACf6uB,GAAU9hC,EAAIgzC,MAAOhzC,EAAIgzC,KAAKC,MAC9BpK,EAAMqK,OAAOH,EAASrjC,SACtByjC,EAAa,CACfpK,QAASgK,EAAShK,QAClBF,IAAKvkB,MAAMukB,GAAOkK,EAASrjC,QAAUm5B,EACrCh/B,SAAUkpC,EAASlpC,SACnBqJ,YAAa6/B,EAAS7/B,YACtBgH,gBAAiB64B,EAAS74B,gBAC1B8uB,YAAa+J,EAAS/J,YACtBC,OAAQ8J,EAAS9J,OACjBL,KAAMmK,EAASnK,KACf/vB,SAAUk6B,EAASl6B,SACnB3O,OAAQ2oC,EACR/rC,IAAKisC,EAASjsC,IACdg7B,WAEJjhC,KAAKgrC,WAAWrC,UAAU2J,EAAYN,EACzC,CACD,iBAAAL,CAAkBxyC,GACd,MAAMozC,EAAgBpzC,EAAIqzC,WACpB7gC,EAASxS,EAAIwS,OACnB3R,KAAKgrC,WAAWlC,iBAAiByJ,EAAe5gC,EACnD,CACD,yBAAAigC,CAA0BzyC,GACtB,MAAMypC,EAAWzpC,EAAI6wC,UACL7wC,EAAIqnB,QACZpnB,SAASwlB,IACb5kB,KAAKgrC,WAAW/B,gBAAgBL,EAAUhkB,EAAO,GAExD,CACD,2BAAAitB,CAA4B1yC,GACxB,MAAMypC,EAAWzpC,EAAI6wC,UACfyC,EAAetzC,EAAIqnB,QACnB8W,EAASt9B,KAAKgrC,WAAWd,cAActB,GAC7C,GAAItL,EAAQ,CACiB1gC,OAAOC,KAAKygC,EAAO9W,SAC3BpnB,SAAS0iC,IACtB,MAAMld,EAAS0Y,EAAO9W,QAAQsb,GAC1B2Q,EAAap/B,QAAQuR,EAAOwkB,YAAc,GAC1CppC,KAAKgrC,WAAWhC,mBAAmBJ,EAAU9G,EAChD,GAER,CACJ,CACD,mBAAAgQ,CAAoB3yC,GAChB,MAAMugC,EAAevgC,EAAIue,KAAKgiB,aACxB97B,EAASzE,EAAIyE,OACbglC,EAAWzpC,EAAIue,KAAKkrB,SACpBtL,EAASt9B,KAAKgrC,WAAWd,cAActB,GAC7C,MAAO,CACHlJ,eACA97B,SACAoF,SAAUs0B,GAAQt0B,SAClBuJ,OAAQwpB,GAAamE,QACrB5yB,QAAS,GAEhB,CACD,qBAAAykC,CAAsB5yC,GAElB,GADAa,KAAKkN,OAAOqE,MAAM,2BAA2B1K,KAAKC,UAAU3H,MACxD,SAAUA,EAAK,CACf,MAAMugC,EAAevgC,EAAIue,KAAKgiB,aACxBkJ,EAAWzpC,EAAIue,KAAKkrB,SACpBtL,EAASt9B,KAAKgrC,WAAWd,cAActB,GACvCt7B,EAAUnO,EAAIwS,OAEpB,MAAO,CACH+tB,eACA97B,OAHYzE,EAAI9B,QAIhB2L,SAAUs0B,GAAQt0B,SAClBuJ,OAAQwpB,GAAal8B,MACrByN,UAEP,CAEG,MAAO,CACHoyB,aAAc,GACdpyB,QAASnO,EAAImO,QACbiF,OAAQwpB,GAAal8B,MACrByL,MAAOnM,EAGlB,EAGL,SAASuzC,GAAoB1pC,EAAUzB,EAAY0lC,EAAkBjJ,EAAkB2O,EAAWrsB,GAC9F,MAAMpZ,EAASylC,EAAUzlC,OAAO4S,UAAU,gBAC1C,IAAIpX,EACJ,MAAMkqC,EAAe,IAAI9sC,SAASC,IAC9B2C,EAAsB3C,CAAO,IAE3B2B,EAAUH,EAAWoB,OAAO,MAAO,CAAC,eACpC20B,EAAS,IAAI0P,GAAetlC,EAASulC,EAAkBjJ,EAAkB92B,EAAO4S,UAAU,WAC1F9S,EAAS,IAAIykC,GAAe/pC,EAASulC,EAAkB//B,EAAO4S,UAAU,WA8D9E,OAbApY,EAAQkB,UAAUC,IACdokC,EAAiBtE,UAAU3/B,EAAUzB,EAAW8B,QAC5CR,EAlDRf,iBACIoF,EAAO2D,KAAK,kEACZ7D,EAAOmjC,0BAA0B/wC,SAAS8T,IACtC,MAAMi3B,EAAaj3B,EAAI0R,OACjB+oB,EAAS/wC,OAAOumB,OAAO,CAAA,EAAIjQ,EAAIy6B,QACrCzgC,EAAO2D,KAAK,yCAAyCs5B,EAAW7sC,sBAAsBuJ,KAAKC,UAAU6mC,MACrGrnB,EAAQtZ,OAAOgsB,UAAUmR,EAAYwD,OAAQxpC,OAAWA,EAAW+O,GAAK1F,MAAK,IAAMN,EAAO2D,KAAK,8BAA8Bs5B,EAAW7sC,eAAckF,OAAO8I,GAAU4B,EAAOgL,KAAK,yBAAyBiyB,EAAW7sC,gBAAgBuJ,KAAKC,UAAUwE,QAAW,IAErQ,MAAMunC,EAAuB,GACvBC,EAAwB9lC,EAAOkjC,qBACrC,IAAK,MAAMh9B,KAAO4/B,EAAuB,CACrC,MAAM3I,EAAaj3B,EAAI0R,OACjB+oB,EAAS/wC,OAAOumB,OAAO,CAAA,EAAIjQ,EAAIy6B,QACrCzgC,EAAO2D,KAAK,oCAAoCs5B,EAAW7sC,sBAAsBuJ,KAAKC,UAAU6mC,MAChGkF,EAAqB3yC,KAAKomB,EAAQtZ,OAAOgsB,UAAUmR,EAAYwD,OAAQxpC,OAAWA,EAAW+O,GAAK1F,MAAK,IAAMN,EAAO2D,KAAK,yBAAyBs5B,EAAW7sC,eAChK,CACD,MAAMy1C,EAAoB/O,EAAiBqB,UAC3CrB,EAAiB3P,QACjB,IAAK,MAAMzP,KAAUmuB,EAAmB,CACpC,MAAMtpC,EAAMmb,EAAOllB,WACfklB,EAAOwX,OACPyW,EAAqB3yC,KAAKomB,EAAQgX,OAAO2H,aAAax7B,EAAKmb,EAAO+f,qBAAiBxgC,OAAWA,EAAWygB,EAAOwX,QAC3G5uB,MAAK,IAAMN,EAAO2D,KAAK,yBAAyBpH,EAAInM,eACpDkF,OAAM,IAAM0K,EAAOgL,KAAK,yBAAyBzO,EAAInM,kBAErDsnB,GAAQqiB,aAAajB,aAC1B6M,EAAqB3yC,KAAKomB,EAAQsf,SAASn8B,EAAKmb,EAAOqiB,YAAYjB,cAC9Dx4B,MAAK,IAAMN,EAAO2D,KAAK,sBAAsBpH,EAAInM,eACjDkF,OAAM,IAAM0K,EAAOgL,KAAK,sBAAsBzO,EAAInM,kBAElDsnB,GAAQqiB,aAAaX,mBAC1BuM,EAAqB3yC,KAAKomB,EAAQ4f,cAAcz8B,EAAKmb,EAAOqiB,YAAYX,mBACnE94B,MAAK,IAAMN,EAAO2D,KAAK,sBAAsBpH,EAAInM,eACjDkF,OAAM,IAAM0K,EAAOgL,KAAK,sBAAsBzO,EAAInM,iBAE9D,OACKwI,QAAQof,IAAI2tB,GAClB3lC,EAAO2D,KAAK,0BACf,CAaOmiC,GAAkBxlC,MAAK,IAAMjG,EAAWyZ,kBAAkB,CAAE1jB,KAAM,cAAckF,OAAO8I,GAAU4B,EAAOgL,KAAK,sCAAsCrR,KAAKC,UAAUwE,QAXlK5C,IACAA,EAAoB,CAChBsE,SACAswB,WAEJ50B,OAAsBvE,EAUzB,IAELuD,EAAQmW,QAAO,KACXovB,EAAiB5Y,OAAO,IAE5B3sB,EAAQjK,OACDm1C,CACX,CAEA,MAAMrsB,GACFvd,SACA4pC,aACA5lC,OACAswB,OACAoL,kBACAvnC,SACA8rC,iBACAjJ,iBACA,WAAAznC,CAAY0/B,GACR,QAA6B,IAAlBA,EACP,MAAM,IAAIp8B,MAAM,6BAEpB,QAAwC,IAA7Bo8B,EAAc10B,WACrB,MAAM,IAAI1H,MAAM,yCAEpB,MAAM0H,EAAa00B,EAAc10B,WAWjC,IAAI0rC,EACJ,GAXmD,iBAAxChX,EAAcM,wBACrBN,EAAcM,sBAAwB,KAEC,iBAAhCN,EAAcO,gBACrBP,EAAcO,cAAgB,KAElCx8B,KAAK0oC,kBAAoB,IAAIlB,GAAgBxnC,UAAMmE,EAAWoD,GAC9DvH,KAAKgJ,SAAWhJ,KAAK0oC,kBAAkBZ,SACvC9nC,KAAKitC,iBAAmB,IAAI3E,GAAiBrM,EAAc/uB,OAAO4S,UAAU,QAAS9f,MACrFA,KAAKgkC,iBAAmB,IAAIwG,GAEO,IAA/BjjC,EAAWwW,gBAIX,MAAM,IAAIle,MAAM,YAAY0H,EAAWwW,iCAHvCk1B,EAAkBP,GAAmB1yC,KAAKgJ,SAAUzB,EAAYvH,KAAKitC,iBAAkBjtC,KAAKgkC,iBAAkB/H,EAAej8B,MAKjIA,KAAK4yC,aAAeK,EAAgBzlC,MAAMrM,IACtCnB,KAAKmB,SAAWA,EAChBnB,KAAKgN,OAAS,IAAIgvB,GAAOh8B,KAAKmB,SAAUnB,KAAKitC,iBAAkBjtC,KAAKgJ,SAAUizB,GAC9Ej8B,KAAKs9B,OAAS,IAAIyG,GAAO/jC,KAAKmB,SAAUnB,KAAKgkC,kBACtChkC,OAEd,CACD,KAAA6iB,GACI,OAAO7iB,KAAK4yC,YACf,CACD,aAAA5U,CAAcxyB,GACV,OAAOxL,KAAKgN,OAAOgxB,cAAcxyB,EACpC,CACD,WAAAsyB,CAAYtyB,GACR,OAAOxL,KAAKgN,OAAO8wB,YAAYtyB,EAClC,CACD,mBAAA4yB,CAAoB5yB,GAChB,OAAOxL,KAAKgN,OAAOoxB,oBAAoB5yB,EAC1C,CACD,iBAAA0yB,CAAkB1yB,GACd,OAAOxL,KAAKgN,OAAOkxB,kBAAkB1yB,EACxC,CACD,aAAAoyB,CAAcpyB,GACV,OAAOxL,KAAKgN,OAAO4wB,cAAcpyB,EACpC,CACD,WAAAkyB,CAAYlyB,GACR,OAAOxL,KAAKgN,OAAO0wB,YAAYlyB,EAClC,CACD,kBAAAgyB,CAAmBx0B,GACf,OAAOhJ,KAAKgN,OAAOwwB,mBAAmBx0B,EACzC,CACD,OAAAwd,CAAQ0W,GACJ,OAAOl9B,KAAKgN,OAAOwZ,QAAQ0W,EAC9B,CACD,OAAAD,CAAQC,GACJ,OAAOl9B,KAAKgN,OAAOiwB,QAAQC,EAC9B,CACD,SAAAlE,CAAUpU,EAAQ7gB,EAAS23B,EAAiBC,GACxC,OAAO37B,KAAKgN,OAAOgsB,UAAUpU,EAAQ7gB,EAAS23B,EAAiBC,EAClE,CACD,YAAAsJ,CAAaC,EAAWl6B,EAAW0wB,EAAiBC,GAChD,OAAO37B,KAAKs9B,OAAO2H,aAAaC,EAAWl6B,EAAW0wB,EAAiBC,EAC1E,CACD,UAAAkI,CAAW3G,GACP,OAAOl9B,KAAKs9B,OAAOuG,WAAW3G,EACjC,CACD,aAAAgJ,CAAc1H,EAAkBhzB,GAC5B,OAAOxL,KAAKs9B,OAAO4I,cAAc1H,EAAkBhzB,EACtD,CACD,QAAAo6B,CAASpH,EAAkBhzB,GACvB,OAAOxL,KAAKs9B,OAAOsI,SAASpH,EAAkBhzB,EACjD,CACD,MAAAkb,CAAOwW,EAAcoB,EAAa35B,EAAQ45B,EAAmBnmB,EAAS9M,GAClE,OAAOtL,KAAKgN,OAAO0Z,OAAOwW,EAAcoB,EAAa35B,EAAQ45B,EAAmBnmB,EAAS9M,EAC5F,CACD,aAAA4nC,CAAc51C,GACV,MAAMwT,EAAK,IAAI/B,EACTuO,EAActd,KAAKgN,OAAO0wB,aAAar+B,IACrCA,EAAE/B,OAASA,IACXggB,IACAxM,EAAG/K,QAAQ1G,GACd,IAEL,OAAOyR,EAAG5B,OACb,EAGL,MAAM+M,GAAkB,CAAC,aAAc,WACvC,MAAMk3B,GACF5rC,WACA2F,OACA7D,OACA3B,QACAo7B,cACA8P,aACA,WAAAr2C,CAAYgL,EAAY2F,GACpBlN,KAAKuH,WAAaA,EAClBvH,KAAKkN,OAASA,EACdlN,KAAKqJ,OAAS9B,EAAW8B,OACzBrJ,KAAK8iC,cAAgB,GACrB9iC,KAAK0H,QAAUH,EAAWoB,OAAO,MAAOsT,IACxCjc,KAAK4yC,aAAe5yC,KAAK0H,QAAQjK,OACjCuC,KAAK4yC,aAAaplC,MAAK,KACnBxN,KAAKozC,cAAc,GAE1B,CACD,KAAAvwB,GACI,OAAO7iB,KAAK4yC,YACf,CACDS,QAAU,CAACC,EAAO/kC,EAAMxK,KACpB,MAAMwvC,WAAEA,EAAU5uC,OAAEA,GAAWZ,GAAW,CAAA,EACpCgiC,EAAO/lC,KAAKwzC,kBAAkB,CAChCp3C,KAAM,UACNk3C,QACA/kC,OACAnF,QAASpJ,KAAKqJ,OACdoqC,YAAaF,EACbG,gBAAiB/uC,IAErB3E,KAAK0H,QAAQQ,KAAK69B,EAAK,EAE3B/M,UAAY,CAACsa,EAAO9nC,EAAUzH,IACnB,IAAI+B,SAAQ,CAACC,EAAS4H,KACzB,MAAM4lC,WAAEA,EAAU5uC,OAAEA,GAAWZ,GAAW,CAAA,EACpCgiC,EAAO/lC,KAAKwzC,kBAAkB,CAChCp3C,KAAM,YACNk3C,QACAlqC,QAASpJ,KAAKqJ,OACdoqC,YAAaF,EACbt6B,OAAQtU,IAEZ3E,KAAK0H,QAAQQ,KAAK69B,GACbv4B,MAAMmmC,IACP,MAAMjI,gBAAEA,GAAoBiI,EAC5B3zC,KAAK8iC,cAAc5iC,KAAK,CAAEwrC,kBAAiB4H,QAAO9nC,WAAUyN,OAAQtU,IACpEoB,EAAQ,CACJuX,YAAa,KACTtd,KAAK0H,QAAQQ,KAAK,CAAE9L,KAAM,cAAesvC,kBAAiBtiC,QAASpJ,KAAKqJ,SACxErJ,KAAK8iC,cAAgB9iC,KAAK8iC,cAAczgC,QAAQW,GAAMA,EAAE0oC,kBAAoBA,IACrE5lC,QAAQC,YAErB,IAEDvD,OAAO8I,GAAUqC,EAAOrC,IAAO,IAG5C8nC,aAAe,KACXpzC,KAAK0H,QAAQyL,GAAG,SAAU4yB,IACtB,MAAMx3B,KAAEA,EAAIm9B,gBAAEA,GAAoB3F,EAC5B9sB,EAAS8sB,EAAK,sBACdzM,EAAet5B,KAAK8iC,cAAcrpB,MAAMzW,GAAMA,EAAE0oC,kBAAoBA,IACtEpS,IACKA,EAAargB,OAIVjZ,KAAK4zC,UAAUta,EAAargB,OAAQA,IACpCqgB,EAAa9tB,SAAS+C,EAAM+qB,EAAaga,MAAOr6B,GAJpDqgB,EAAa9tB,SAAS+C,EAAM+qB,EAAaga,MAAOr6B,GAOvD,GACH,EAEN,iBAAAu6B,CAAkBze,GACd,MAAM8e,EAAU,CAAA,EAMhB,OALAj3C,OAAOC,KAAKk4B,GAAK31B,SAASpC,SACLmH,IAAb4wB,EAAI/3B,IAAmC,OAAb+3B,EAAI/3B,KAC9B62C,EAAQ72C,GAAO+3B,EAAI/3B,GACtB,IAEE62C,CACV,CACD,SAAAD,CAAUE,EAAMC,GACZ,MAAMC,EAAWp3C,OAAOC,KAAKi3C,GAC7B,IAAIG,GAAW,EAMf,OALAD,EAAS50C,SAASpC,IACV82C,EAAK92C,KAAS+2C,EAAK/2C,KACnBi3C,GAAW,EACd,IAEEA,CACV,EAGL,MAAMC,GAAuB,CAACC,EAAYC,KACtC,MAAMC,EAA8B,iBAAXjvC,OAAuBA,OAAOivC,WAAajvC,OAAOO,cAAYxB,EACjFmwC,EAAmC,iBAAXlvC,OAAuBA,OAAOmvC,kBAAoBzuC,QAAQC,UAAaD,QAAQC,UACvGyuC,EAAgBhlC,EAAM,QAGtBilC,EAxpKV,SAAwBxY,EAAemY,EAAKzuC,GACxC,IAAI+uC,EACJ,GAAIhmC,EAAMC,SAAU,CAChB,MAAMgmC,EAAwB9lC,QAAQ+lC,IAAIC,sBAC1C,GAAIF,EACA,IACID,EAAsB7tC,KAAKwc,MAAMsxB,EACpC,CACD,MACC,CAER,CA6FD,SAASG,IACL,GAAI7Y,EAAc5pB,YACd,OAAO4pB,EAAc5pB,YAEzB,GAAI1M,EACA,OAAOA,EAAS0T,gBAEpB,GAAsB,oBAAXjU,aAA2D,IAA1BA,OAAO2vC,eAC/C,OAAO3vC,OAAO2vC,eAAe1iC,YAEjC,MAAM8Z,EAAM3Y,EAAO,IACnB,OAAI9E,EAAMC,SACF+lC,EACOA,EAAoBM,kBAAkB13C,KAE1C,SAAW6uB,EAEA,oBAAX/mB,QAA8C,oBAAbZ,SACjCA,SAASU,MAAQ,KAAKinB,KAE1BA,CACV,CAuCD,MAAM5kB,EAxJN,WACI,MAAM0tC,EAAWhZ,EAAciZ,QACzBn3B,EAAkBk3B,GAAUl3B,iBAAmB,EAC/C3M,EAAoB6jC,GAAU7jC,kBAC9BC,EAAoB4jC,GAAU5jC,kBAEpC,IAAId,EAAK0kC,GAAU1kC,GACnB,MAAMwP,EAAek1B,GAAUl1B,aACzBF,EAASo1B,GAAUp1B,OACnBG,EAAci1B,GAAUj1B,kBAAe7b,EAU7C,IAAIgxC,EACAn9B,EACAgwB,EACAG,EACAC,EAbAziC,IACA4K,EAAK5K,EAASyvC,OAEd1mC,EAAMC,UAAY+lC,GAAuBA,EAAoBU,QAC7D7kC,EAAKmkC,EAAoBU,OAExB7kC,GAAOwP,GAAiBF,IACzBtP,EAZc,uBAmBlB,MAAM3K,EAAUkvC,IAChB,IAAIO,EAAgBzvC,OACI,IAAbD,GACPqS,EAAWrS,EAASqS,SACpBgwB,EAAMriC,EAASqiC,IACXriC,EAASivC,MACTzM,EAAcxiC,EAASivC,IAAIA,IAC3BxM,EAASziC,EAASivC,IAAIxM,QAE1BiN,EAAgB1vC,EAAS0M,aAAe,WACxC8iC,EAAaxvC,EAAS2vC,eAEjB5mC,EAAMC,UACXq5B,EAAMn5B,QAAQm5B,IACV0M,IACAvM,EAAcuM,EAAoBE,IAClCxM,EAASsM,EAAoBtM,OAC7B+M,EAAaT,EAAoBS,kBAGE,IAA3B/vC,QAAQ2vC,iBACpB/8B,EAAW5S,QAAQ2vC,eAAeI,WAClCnN,EAAM5iC,QAAQ2vC,eAAe/M,IAC7BG,EAAc/iC,QAAQ2vC,eAAeH,IACrCxM,EAAShjC,QAAQ2vC,eAAe3M,OAChCiN,EAAgBjwC,QAAQ2vC,eAAe1iC,aAAe,WACtD8iC,EAAa/vC,QAAQ2vC,eAAeI,YAGxC,MAAM7yB,EAAc2Z,EAAciZ,SAAS5yB,aAAe,GAC1DA,EAAYpiB,KAAK6nB,IACjB,IAAI3V,EAAW,CACXC,YAAagjC,EACbh8B,gBAAiBzT,EACjBoS,WACAhP,SAAUmsC,EACVtmC,QAASm5B,EACTI,SACAD,cACAliC,IAAKmuC,EAAIpsB,SAAWA,IAKxB,OAHIiU,EAAc7pB,WACdA,EAAWxV,OAAOumB,OAAO/Q,EAAU6pB,EAAc7pB,WAE9C,CACHA,WACAhB,oBACAb,KACAwP,eACAC,cACAH,SACA9B,kBACA1M,oBACAiR,cAEP,CAyEkBizB,GACnB,IAAIljC,EAAcyiC,IAClB,GAAsB,oBAAX1vC,OAAwB,CAC/B,MAAMowC,EAAcpwC,OACdqwC,EAAuBD,EAAYE,cACrC,GAAGF,EAAYE,cAAcC,iBAAiBH,EAAYE,cAAcrjC,cACxEmjC,GAAa7vC,UAAU0M,YACvBojC,IACApjC,EAAcojC,EAErB,CACD,MAAO,CACHG,IAAK3Z,EAAc2Z,MAAO,EAC1BvjC,cACA+Q,KAnDkC,iBAAvB6Y,EAAc7Y,KACd,CACHpF,MAAOie,EAAc7Y,MAGzB6Y,EAAc7Y,KACP6Y,EAAc7Y,KAErB1U,EAAMC,UAAY+lC,GAAuBA,EAAoBmB,QACtD,CACH13B,aAAcu2B,EAAoBmB,SAGtC5Z,EAAciZ,SAASl1B,aAAeic,EAAciZ,SAASr1B,QAAUoc,EAAciZ,SAASn1B,aACvF,CACH6D,SAAU,SAAUC,SAAU,eAFtC,EAuCA3W,OAjCJ,WACI,IAAI1F,EAASy0B,EAAc/uB,OAC3B,MAAM4oC,EAAe,OAIrB,IAAIC,EAIJ,OAPKvuC,IACDA,EAASsuC,GAGTnwC,IACAowC,EAAiBpwC,EAASqwC,iBAER,iBAAXxuC,EACA,CAAE6D,QAAS0qC,GAAkBvuC,EAAQ6rC,QAASyC,GAElD,CACHzqC,QAAS0qC,GAAkBvuC,EAAO6D,SAAWyqC,EAC7CzC,QAAS7rC,EAAO6rC,SAAWyC,EAElC,CAgBWG,GACR1uC,aACA5E,QAASs5B,EAAct5B,UAAW,EAClCuzC,cAzFsC,IAA3Bja,EAAcia,UAGa,kBAA3Bja,EAAcia,UAA0Bja,EAAcia,SAFtD,CAAE7e,yBAAyB,GAKA,iBAA3B4E,EAAcia,UACdt5C,OAAOumB,OAAO,GAAI,CAAEkU,yBAAyB,GAAQ4E,EAAcia,UAmF9EluB,QAASosB,EAAIpsB,SAAWA,GACxBmuB,KAAM/B,EAAI+B,MAAQ,GAClBC,aAAcna,EAAcma,aAEpC,CA69J2BC,CAFvBlC,EAAaA,GAAc,GAC3BC,EAAMA,GAAO,GACyCC,GACtD,IAAIne,EACAogB,EACArgB,EACAl0B,EACAw0C,EACAC,EACAC,EACJ,MAAMN,EAAO,CAAA,EACb,SAASO,EAAYp5C,EAAMq5C,EAAOrnC,GAC9BmnC,EAAcxgB,EAAQhW,WAAW,SAC7Bw2B,GACAxgB,EAAQzV,MAAM,eAAeljB,YAEjC,MAAMs5C,EAAO,KACTD,EAAM9gB,SAAWvmB,EAAEY,OACnBymC,EAAM5gB,YAAczmB,EAAEM,QACtB+mC,EAAMjnC,MAAQJ,EAAEI,MACZ+mC,GACAxgB,EAAQzV,MAAM,GAAGljB,gBAAmBgS,EAAEM,QAAUN,EAAEK,YACrD,EAELgnC,EAAM7gB,cAAgBxmB,EAAEK,UACpBgnC,EAAM9zB,MACN8zB,EAAM9zB,QAAQrV,MAAK,KACfopC,GAAM,IAIVA,IAECt4C,MAAMC,QAAQjB,KACfA,EAAO,CAACA,IAEZA,EAAK8B,SAASmwB,IACV4mB,EAAK5mB,GAAKonB,EACVzC,GAAqB3kB,GAAKonB,CAAK,GAEtC,CA2DD,SAASE,IACL,MAAMC,EAAYtnC,EAAM,WAClBhI,EAASitC,EAAe9xC,QACxBo0C,EAA+B1C,GAAW2C,4BAC1C5kC,EAAWqiC,EAAeltC,WAAW6K,SACrC3J,EAAkBsuC,GAA8D,MAAM,GACtFxtC,GAA0C,kBAAX/B,GAAwBA,EAAO+B,wBAAyB,EAY7F,OAXAxH,EAAWY,EAAQ,CACf4E,WAAYC,EAAS0uB,OAAc/xB,EACnC+I,OAAQ+oB,EAAQnW,UAAU,WAC1BrX,kBACAhK,OAAQ,SACRsK,QAASqJ,GAAUrJ,SAAWsrC,GAAWh7B,iBAAmBo7B,EAAepiC,YAC3ErJ,SAAUoJ,GAAUpJ,UAAYoJ,GAAU4F,UAAYxE,EAAO,IAC7DjK,uBACAS,uBAA0C,kBAAXxC,EAAuBA,GAAQwC,4BAAyB7F,IAE3FuyC,EAAY,UAAW30C,EAAU+0C,GAC1BhxC,QAAQC,SAClB,CACD,SAASkxC,IACL,MAAMH,EAAYtnC,EAAM,WAClB0nC,EAAY,CACd3vC,WAAY2uB,EACZhpB,OAAQ+oB,EAAQnW,UAAU,YAK9B,OAHAw2B,EAAW,IAAI/vB,GAAQ2wB,GACvB5xB,EAAOiB,QAAU+vB,EACjBI,EAAY,CAAC,UAAW,OAAQJ,EAAUQ,GACnChxC,QAAQC,SAClB,CACD,SAASoxC,IACL,MAAMC,EAAiB3C,EAAe4C,YAA8C,IAAhCnhB,EAAYnY,gBAEhE,GADsB02B,EAAeyB,UAAYkB,EAC9B,CACf,MAAMN,EAAYtnC,EAAM,YAQxB,OAPA+mC,EAAY,IAAI3gB,GAAe,CAC3BruB,WAAY2uB,EACZhpB,OAAQ+oB,EAAQnW,UAAU,YAC1BsX,iBAAqD,iBAA5Bqd,EAAeyB,UAAwBzB,EAAeyB,SAAS9e,iBACxFC,wBAA4D,iBAA5Bod,EAAeyB,UAAwBzB,EAAeyB,SAAS7e,0BAEnGqf,EAAY,WAAYH,EAAWO,GAC5BP,CACV,CACI,CACD,MAAMn4B,EAAW8X,EAAY9X,SACzBA,GACAA,EAAS9K,MAAMyU,GAAyBzqB,KAE/C,CACJ,CACDwK,eAAewvC,IACX,IAAK7C,EAAemB,IAChB,OAAO9vC,QAAQC,UAEnB,MAAM+wC,EAAYtnC,EAAM,OAGxB,OAFAgnC,EAAO,IAAIrD,GAAWjd,EAAaD,EAAQnW,UAAU,QACrD42B,EAAY,MAAOF,EAAMM,GAClBhxC,QAAQC,SAClB,CACD,SAASwxC,EAAkBC,GACvB,IAII,OAHAA,EAAap4C,SAAS6hB,KAS9B,SAA0B3jB,EAAMm6C,GAC5B,MAAMX,EAAYtnC,EAAMlS,GAClB2jB,EAAMw2B,EAAetB,GACvBl1B,GACAy1B,EAAYp5C,EAAM2jB,EAAK61B,EAE9B,CAdWY,CAAiBz2B,EAAI3jB,KAAM2jB,EAAIoM,OAAO,IAEnCvnB,QAAQC,SAClB,CACD,MAAOrB,GACH,OAAOoB,QAAQ6H,OAAOjJ,EACzB,CACJ,CA0HD,OAAO4vC,EACF9mC,MA7ML,WACI,MAAMspC,EAAYtnC,EAAM,UAQxB,OAPAymB,EAAU,IAAI3Q,EAAO,GAAGmvB,EAAeltC,WAAW6K,UAAUC,mBAAelO,EAAWswC,EAAe2B,cACrGngB,EAAQhQ,aAAawuB,EAAevnC,OAAO7B,SAC3C4qB,EAAQlQ,aAAa0uB,EAAevnC,OAAOmmC,SACvCpd,EAAQhW,WAAW,UACnBgW,EAAQ1kB,MAAM,wBAElBmlC,EAAY,SAAUzgB,EAAS6gB,GACxBhxC,QAAQC,aAAQ5B,EAC1B,IAoMIqJ,MA7PL,WACI,MAAMspC,EAAYtnC,EAAM,cACxB0mB,EAAc,IAAIpY,EAAW22B,EAAeltC,WAAY0uB,EAAQnW,UAAU,eAC1E,IAAI63B,EAAc7xC,QAAQC,QAAQ0uC,EAAerxB,MAqBjD,OApBIqxB,EAAeltC,aAAektC,EAAerxB,OACzCixB,EACAsD,EAActD,EAAUlvB,aACnB3X,MAAMwQ,IACA,CACHG,aAAcH,MAIC,oBAAX5Y,QAA0BA,QAAQ2vC,eACD,iBAAlC3vC,OAAO2vC,eAAec,UAC7B8B,EAAc7xC,QAAQC,QAAQ,CAC1BoY,aAAc/Y,OAAO2vC,eAAec,WAK5C8B,EAAc7xC,QAAQ6H,OAAO,yCAG9BgqC,EACFnqC,MAAMoqC,IAEP,IAAIp2B,EACJ,GAFAs1B,EAAUhnC,KAAK,yBAEoC,oBAA/ClT,OAAO8N,UAAU1M,SAAS4M,KAAKgtC,GAI/B,MAAM,IAAI/3C,MAAM,yBAA2BgH,KAAKC,UAAU8wC,IAE9D,OALIp2B,EAAco2B,EAKX1hB,EAAY3U,MAAMC,EAAY,IAEpChU,MAAK,KACNkpC,EAAY,aAAcxgB,EAAa4gB,GAChCrC,KAENjyC,OAAOkC,IAIR,MAHIwxB,GACAA,EAAYtU,SAEVld,CAAC,GAEd,IAgNI8I,MAAK,IAAM1H,QAAQof,IAAI,CAAC2xB,IAAgBI,IAAgBE,IAAiBG,QACzE9pC,MAAK,IAAM8oC,EAAS1D,eACpBplC,MAAK,IApBV1F,iBACI,MAAM+vC,EAA6B,2BACnC,GAAInpC,EAAMC,eAAyD,IAAtCE,QAAQ+lC,IAAIC,4BAA4E,IAA5BV,GAAY9hC,aACvEikC,EAAS9vB,QAAQ,CAAElpB,KAAMu6C,IAA8Bn6C,OAAS,EAEtF,UACU44C,EAAS5vB,OAAOmxB,EAA4B,CAAEjyC,QAASuuC,GAAY9hC,YAAa21B,IAAKn5B,QAAQm5B,KACtG,CACD,MAAO18B,GACH,MAAMwsC,EAAaxsC,EACnB2qB,EAAQ3qB,MAAM,mCAAmCzE,KAAKC,UAAUgxC,EAAWxqC,WAC9E,CAGZ,CAMeyqC,KACXvqC,MAAK,IACC+pC,EAAkB9C,EAAe0B,MAAQ,MAE/C3oC,MA3HL,WACI,MAAMwqC,EAAoBp7C,OAAOC,KAAKs5C,GAAM/uC,KAAKpK,IAC7C,MAAMikB,EAAMk1B,EAAKn5C,GACjB,OAAOikB,EAAI4B,MACP5B,EAAI4B,QAAU/c,QAAQC,SAAS,IAEvC,OAAOD,QAAQof,IAAI8yB,EACtB,IAqHIxqC,MApHL,WACI,MAMMqD,EAAO,CACTonC,YAAajwB,GACbA,QAASysB,EAAezsB,SAE5BwsB,EAActkC,OACd,MAAMgoC,EAAO,CACTC,SAZkBC,IACb9B,GAGLA,EAAS5vB,OAAO,mBAAoB0xB,EAAc,OAAO,EASzDvnC,OACA3D,OAAQ+oB,EACR3P,QAASgwB,EACT+B,IAAK/B,EACL/uC,WAAY2uB,EACZvzB,QAASZ,EACTm0C,SAAUK,EACVX,IAAKY,EACLxuB,QAASysB,EAAezsB,QACxBmsB,aACAyC,KAAM,KACF3gB,GAASplB,KAAK,0BACPqlB,EAAYtU,WAiD3B,GA9CAs2B,EAAKtxC,YAAc,CACf,WAAI0xC,GACA,OAAO7D,EAAezsB,OACzB,EACD,cAAIuwB,GACA,OAAO1xC,KAAKC,UAAUqtC,EACzB,EACD,WAAIqE,GACA,OAAOpzC,OAAOwB,YAAY6xC,OAAOnxC,QACpC,EACD,UAAIX,GACA,OAAOvB,OAAOwB,YAAYD,MAC7B,EACD,aAAI+xC,GACA,MAAMxzB,EAtuOX3V,EAuuOK,OAAO3S,OAAOC,KAAKqoB,GAAK9d,KAAKpK,IACzB,MAAMsS,EAAI4V,EAAIloB,GACd,MAAO,CACHM,KAAMN,EACN27C,SAAUrpC,EAAEM,QAAUN,EAAEK,UACxBD,MAAOJ,EAAEI,MACTC,UAAWL,EAAEK,UACbC,QAASN,EAAEM,QACd,GAER,GAELhT,OAAOC,KAAKs5C,GAAM/2C,SAASpC,IACvB,MAAMikB,EAAMk1B,EAAKn5C,GACjBk7C,EAAKl7C,GAAOikB,CAAG,IAEnBi3B,EAAK1wC,OAAS,GACd5K,OAAOC,KAAK43C,GAAgBr1C,SAAS4B,IACjCk3C,EAAK1wC,OAAOxG,GAAKyzC,EAAezzC,EAAE,IAElCozC,GAAOA,EAAIwE,YACXh8C,OAAOC,KAAKu3C,EAAIwE,YAAYx5C,SAAS4B,IACjCk3C,EAAK1wC,OAAOxG,GAAKozC,GAAKwE,WAAW53C,EAAE,IAGvCozC,GAAKyE,YACLzE,EAAIyE,WAAWX,GAEf7D,GAAaA,EAAUyE,gBACvBzE,EAAUyE,eAAeZ,EAAKtxC,aAE9BsxC,EAAKG,IAAK,CACV,MAAMU,EAAsB,CAACC,EAAIC,EAAOC,IAC7B,WAEH,OADAhB,EAAKhrC,OAAOgL,KAAK,uBAAuB+gC,8CAAkDC,eACnFF,EAAGltC,MAAMosC,EAAKG,IAAK9rC,UAC9C,EAEkB4sC,EAASjB,EAAKG,IACpBc,EAAOC,aAAeL,EAAoBb,EAAKG,IAAI3a,YAAa,eAAgB,eAChFyb,EAAOE,eAAiBN,EAAoBb,EAAKG,IAAIza,cAAe,iBAAkB,iBACtFub,EAAOG,aAAeP,EAAoBb,EAAKG,IAAIva,YAAa,eAAgB,eAChFqb,EAAOI,mBAAqBR,EAAoBb,EAAKG,IAAIna,kBAAmB,qBAAsB,qBAClGib,EAAOK,sBAAwBT,EAAoBb,EAAKG,IAAIja,oBAAqB,wBAAyB,sBAC7G,CACD,OAAO8Z,CACV,IA2BI11C,OAAOuJ,GACDjG,QAAQ6H,OAAO,CAClB5B,MACAoqC,UAEN,EAEgB,oBAAX/wC,SACPA,OAAOq0C,cAAgBvF,IAE3BA,GAAqBlsB,QAAUA,GAC/BksB,GAAqBvnC,QAAUunC,GC7zQjB,MAAOwF,GAKnB,WAAAn9C,CAAY0D,GACVD,KAAK25C,IAAM15C,CACZ,CAED,MAAWA,GACT,OAAOD,KAAK25C,GACb,CAMM,OAAAC,CAAQ/lB,GACb,GAAIA,EAAM8lB,MAAQ35C,KAAK25C,IACrB,MAAM95C,MAAM,iDAEdG,KAAK65C,YAAYhmB,EAClB,CAEM,WAAAgmB,CAAYhmB,GAElB,CAEM,aAAAimB,CAAcjmB,GAEpB,EClCG,SAAUkmB,GAAS9tB,GACvB,MAAsB,iBAARA,CAChB,CAEM,SAAU+tB,GAAS/tB,GACvB,MAAsB,iBAARA,CAChB,CAEM,SAAUoE,GAASpE,GACvB,MAAsB,iBAARA,GAA4B,OAARA,CACpC,CAEM,SAAU1tB,GAAQ0tB,GAEtB,OAAI3tB,MAAMC,QACDD,MAAMC,QAAQ0tB,GAEO,mBAAvBjuB,SAAS4M,KAAKqhB,EACvB,CACM,SAAUguB,GAAYhuB,GAC1B,YAAsB,IAARA,CAChB,CAEM,SAAUiuB,GAAkBjuB,GAChC,OAAOA,OACT,CAEM,SAAUkuB,GAAmBC,GACjC,MAAuB,iBAARA,IAAqBA,GAAsB,IAAfA,EAAI18C,QAAgB,QAAQy1B,KAAKinB,EAC9E,CAEM,SAAUC,GAAUtlB,GACxB,OAAe,IAARA,IAAwB,IAARA,GAAwC,qBAAvB/2B,SAAS4M,KAAKmqB,EACxD,CAeM,SAAU7B,GAAWjH,GACzB,SAAUA,GAAOA,EAAI1vB,aAAe0vB,EAAIrhB,MAAQqhB,EAAIngB,MACtD,CAoBgB,SAAAwuC,GAAkBtlB,EAASulB,QACrB,IAATvlB,GACTulB,EAASvlB,EAEb,CC5DqB,MAAAwlB,WAAqBd,GAOxC,WAAAn9C,CAAYe,EAAcm9C,EAAyBC,EAA8Bt9C,GAC/EoD,MAAMlD,GACN0C,KAAKqB,MAAQ/D,EACb0C,KAAKsB,aAAelE,EACpB4C,KAAK26C,aAAeF,EACpBz6C,KAAK46C,eAAiBF,GAAiB,EACxC,CAKD,QAAWp9C,GACT,OAAO0C,KAAKqB,KACb,CAKD,eAAWjE,GACT,OAAO4C,KAAKsB,YACb,CAMD,iBAAWo5C,GACT,OAAO16C,KAAK46C,eAAexzC,KAAKyzC,GAAO76C,KAAK86C,kBAAkBD,IAC/D,CAKD,eAAWJ,GACT,OAAOz6C,KAAK86C,kBAAkB96C,KAAK26C,aACpC,CAWM,QAAAI,CAAS19C,EAAiBmO,EAAyCywB,GACxE,OAAOj8B,KAAKg7C,SAASD,SAAS/6C,KAAKqB,MAAOhE,EAASmO,EAAUywB,EAC9D,CAEM,WAAA4d,CAAYhmB,GACjBrzB,MAAMq5C,YAAYhmB,GAClBymB,GAAezmB,EAAMvyB,cAAekJ,GAAMxK,KAAKsB,aAAekJ,IAC9D8vC,GAAezmB,EAAM8mB,cAAenwC,GAAMxK,KAAK26C,aAAenwC,IAC9D8vC,GAAezmB,EAAM+mB,gBAAiBpwC,GAAMxK,KAAK46C,eAAiBpwC,GACnE,CAEO,iBAAAswC,CAAkBG,WAExB,MAAO,CACL7+C,KAAoB,QAAdwP,EAAAqvC,eAAAA,EAAYh7C,UAAE,IAAA2L,OAAA,EAAAA,EAAExP,KACtBkB,KAAoB,QAAd49C,EAAAD,eAAAA,EAAYh7C,UAAE,IAAAi7C,OAAA,EAAAA,EAAE59C,KAEzB,EC3EkB,MAAA69C,WAAmBzB,GAKtC,WAAAn9C,CAAYe,EAAc89C,GACxB56C,MAAMlD,GACN0C,KAAKqB,MAAQ/D,EACb0C,KAAKq7C,uBAAyBD,CAC/B,CAMD,QAAW99C,GACT,OAAO0C,KAAKqB,KACb,CAMD,UAAWmG,GACT,OAAOxH,KAAKq7C,uBAAuBr7C,KAAKqB,MACzC,CAKD,WAAWi6C,GACT,OAAOt7C,KAAKg7C,SAASO,WAAW,CAAEn/C,KAAM4D,KAAKqB,OAC9C,CAEM,MAAAgsB,CAAOmuB,EAAoBvf,GAChC,MAAMv8B,EAAgC9C,OAAeumB,OAAO,CAAE/mB,KAAM4D,KAAK1C,KAAMA,KAAM0C,KAAK1C,KAAMm+C,eAAe,GAASxf,GACxH,OAAOj8B,KAAKg7C,SAASU,aAAaF,EAAU97C,EAC7C,QC9CUi8C,GAIT,WAAAp/C,CAAYq/C,EAAYv+C,GACpB2C,KAAK67C,OAASD,EACd57C,KAAK3C,QAAUA,CAClB,QAGQy+C,GAGT,WAAAv/C,CAAYw/C,GACR/7C,KAAK5D,KAAO2/C,CACf,EAGC,MAAOC,WAAyCF,GAIlD,WAAAv/C,CAAY0/C,EAA2BC,GACnC17C,MAAM27C,GAAgBC,cACtBp8C,KAAKi8C,UAAYA,EACjBj8C,KAAKk8C,UAAYA,CACpB,EAGC,MAAOG,WAA2CP,GAKpD,WAAAv/C,CAAYc,EAA0Bu3B,EAAiBC,GACnDr0B,MAAM27C,GAAgBG,uBACtBt8C,KAAK3C,QAA6B,iBAAZA,EAAuBwJ,KAAKwc,MAAMhmB,GAAWA,EACnE2C,KAAK40B,QAAUA,EACf50B,KAAK60B,QAAUA,CAClB,QAGQsnB,IACKA,GAAKI,MAAG,QACRJ,GAAOK,QAAG,UACVL,GAAOM,QAAG,UACVN,GAAMO,OAAG,SACTP,GAAYC,aAAG,eACfD,GAAqBG,sBAAG,wBACxBH,GAAmBQ,oBAAG,sBAEtBR,GAA4BS,6BAAG,SAC/BT,GAA0BU,2BAAG,aAGlCC,IACKA,GAAOC,QAAG,UACVD,GAAOE,QAAG,UACVF,GAASG,UAAG,kBCnDjBC,GAKT,WAAA3gD,CAAYi/C,GACRx7C,KAAKm9C,UAAY3B,CACpB,CAEM,QAAA5V,CAASlmC,EAA4DyiB,GACxEniB,KAAKo9C,gBACLF,GAAYG,IAAIzX,SAASlmC,EAAYyiB,EACxC,CAEM,OAAA8a,GAGH,OAFAj9B,KAAKo9C,gBAEDE,GAAuBt9C,KAAKm9C,WAErB,GAGJn9C,KAAKm9C,UAAU7B,QAAQl0C,KACzBm2C,GACUA,EAAEv0C,UAEpB,CAEM,OAAAwd,GAGH,GAFAxmB,KAAKo9C,gBAEDE,GAAuBt9C,KAAKm9C,WAE5B,MAAO,GAGX,MAAM7B,EAAUt7C,KAAKm9C,UAAU7B,QACzBkC,EAAwB,GACxBh3B,EAAmD,GAazD,OAVA80B,EAAQl8C,SAASgG,IACSpF,KAAKy9C,iBAAiBr4C,GAC9BhG,SAASs+C,KACoC,IAAnDF,EAAYnqC,QAAQqqC,EAAoBpgD,QACxCkgD,EAAYt9C,KAAKw9C,EAAoBpgD,MACrCkpB,EAAQtmB,KAAKw9C,GAChB,GACH,IAGCl3B,CACV,CAEM,gBAAAi3B,CAAiBr4C,GAGpB,OAFApF,KAAKo9C,gBAEAh4C,EAAO4D,SAILk0C,GAAYG,IAAI7f,mBAAmBp4B,EAAO4D,UAHtC,EAId,CAgBM,MAAA0d,CACHsgB,EACA/a,EACAtnB,EACAZ,EACAqU,EACA9M,GAEAtL,KAAKo9C,gBACL,MAAMO,EAAkB39C,KAAKi9B,UAO7B,GAJIqgB,GAAuB34C,KACvBA,EAAS,gBAGTi5C,GAAcj5C,GACd,GAAe,iBAAXA,OAEG,IAAe,kBAAXA,EAUJ,IAAe,QAAXA,GAA+B,SAAXA,EAC3B,gBJvCUuK,EAAuBwsB,EAA6BC,GAE5E,GAA+B,mBAApBD,GAA2D,mBAAlBC,EAClD,OAAOzsB,EAGsB,mBAApBwsB,EACTA,EAAkB,KAAQ,EACQ,mBAAlBC,IAChBA,EAAgB,KAAQ,GAG1BzsB,EAAQ1B,KAAKkuB,EAAiBC,EAChC,CI0BuBF,CAAUyhB,GAAYG,IAAI32B,OAAOsgB,EAAY/a,EAAKtnB,EAAQZ,GAAUqU,EAAS9M,GAGpF,MAAM,IAAIzL,MAAM,yBAA2B8E,EAC9C,CAfsC,CACnC,MAAMk5C,EAAmBF,EAAgBt7C,QAAQi7B,GAC7B4f,GAAYG,IAAI7f,mBAAmBF,GACpCj7B,QAAQhD,GACZA,EAAE/B,OAAS0pC,IACnBtpC,OAAS,IAEZmgD,EAAiBngD,OAAS,GACAmgD,EAAiB,EAElD,CAKA,MACE,GAAIC,GAAan5C,IAEpB,GAAKA,EAAejH,QAAU,EAAG,CAC7B,MAAMqgD,EAAap5C,EAAe,GAElC,GAAI3E,KAAKg+C,YAAYD,GACSp5C,EAA2CyC,KAAK4B,GAA4CA,QACnH,KAAIhJ,KAAKi+C,kBAAkBF,GAG9B,MAAM,IAAIl+C,MAAM,yBAFU8E,EAA4ByC,KAAK82C,GAAwBA,EAAIl1C,UAG1F,CACJ,OAED,GAAIhJ,KAAKg+C,YAAYr5C,QAEd,KAAI3E,KAAKi+C,kBAAkBt5C,GAG9B,MAAM,IAAI9E,MAAM,yBAFW8E,EAA0BqE,QAGxD,CAGL,MAAM,IAAInJ,MAAM,kBAEnB,CAEM,UAAAgkC,CAAWnkC,GAEd,OADAM,KAAKo9C,gBACEF,GAAYG,IAAIxZ,WAAWnkC,EACrC,CAEM,YAAAulC,CAAazG,EAChBqG,EACAC,GACA9kC,KAAKo9C,gBAELF,GAAYG,IAAIpY,aAAazG,EAAkB,CAC3CqG,2BACAC,6BACAF,gCAA4BzgC,GAEnC,CAEM,SAAA60B,CAAUwF,EAAkE2f,EAAoBx5C,GAKnG,OAJA3E,KAAKo9C,gBAIEF,GAAYG,IAAIrkB,UAAUwF,EAAkB2f,EACtD,CAEM,aAAAf,GACH,GAAIE,GAAuBJ,GAAYG,KACnC,MAAM,IAAIx9C,MAAM,kDAEvB,CAEM,WAAAm+C,CAAYjpB,GAEf,YAA2B5wB,IAApB4wB,EAAI1iB,WACd,CAEM,iBAAA4rC,CAAkBlpB,GACrB,YAAwB5wB,IAAjB4wB,EAAI/rB,QACd,QCvLQo1C,GAKX,WAAA7hD,CACE8hD,EACAC,EACAr/C,GACAe,KAAKg7C,SAAWqD,EAChBr+C,KAAKu+C,iBAAmBD,EACxBt+C,KAAK4B,OAAS3C,CACf,CAED,WAAWu/C,GACT,OAAOx+C,KAAK4B,OAAO48C,OACpB,CAED,aAAWC,GACT,OAAOz+C,KAAK4B,OAAO68C,SACpB,CAED,cAAWC,GACT,OAAO1+C,KAAK4B,OAAO88C,UACpB,CAED,WAAWrhD,GACT,OAAO2C,KAAK4B,OAAOvE,OACpB,CAED,OAAWggB,GACT,OAAOrd,KAAK4B,OAAOyb,GACpB,CAEM,MAAAshC,CAAOC,GAEZA,EAAaA,GAAc,GAE3B,MAAMlgD,EAA6B,CAAA,EASnC,OAPA9B,OAAOC,KAAKmD,KAAK4B,QAAQxC,SAASmiC,IAChC7iC,EAAO6iC,GAAQvhC,KAAK4B,OAAO2/B,EAAK,IAGlC7iC,EAAOrB,QAAUuhD,EAAWvhD,SAAWqB,EAAOrB,QAC9CqB,EAAOggD,WAAaE,EAAWF,YAAchgD,EAAOggD,WAE7C1+C,KAAKg7C,SAAS6D,iBAAiB7+C,KAAKu+C,iBAAkB7/C,EAC9D,EClDH,MAAMogD,GAAYC,IAChBz4C,WAAWy4C,EAAI,EAAE,EAOH,SAAAC,GAAW9vC,EAAqB1D,GAC9C,IAAKyzC,GAAgBzzC,GACnB,OAAO0D,EAGTA,EAAQ1B,MACL0xC,IACCJ,IAAU,KACRtzC,EAAS,KAAM0zC,EAAK,GACpB,IAEHnzC,IACC+yC,IAAS,KACPtzC,EAASO,EAAK,KAAK,GACnB,GAER,CCJqB,MAAAozC,WAAiBzF,GAUpC,WAAAn9C,CACE0D,EACAm/C,EACA7sC,EACAlV,EACAmhD,GACAh+C,MAAMP,GACND,KAAK25C,IAAM15C,EACXD,KAAKq/C,SAAWD,EAChBp/C,KAAKs/C,QAAU/sC,EACfvS,KAAKu/C,SAAWliD,EAChB2C,KAAKw/C,SAAWhB,EAChBx+C,KAAKy/C,KAAO,IAAIvC,GAAYl9C,KAC7B,CAMD,QAAW5D,GACT,GAAI4D,KAAKg7C,SACP,OAAOh7C,KAAKg7C,SAAS0E,gBAAgB1/C,KAAKq/C,SAG7C,CAMD,WAAWhiD,GACT,OAAO2C,KAAKu/C,QACb,CAMD,UAAWhtC,GACT,OAAOvS,KAAKs/C,OACb,CAMD,SAAWK,GACT,OAAK3/C,KAAKw/C,SAGHx/C,KAAKg7C,SAASO,WAAW,CAAEt7C,GAAID,KAAKw/C,WAAY,GAF9C,IAGV,CAMD,WAAWlE,GACT,OAAOt7C,KAAKg7C,SAASO,WAAW,CAAEjzB,WAAYtoB,KAAK25C,KACpD,CAKD,OAAWtB,GACT,OAAOr4C,KAAKy/C,IACb,CAWM,SAAAG,CAAUx6C,EAAwBoG,GACvC,OAAOxL,KAAKg7C,SAAS6E,oBAAoB7/C,KAAMoF,EAAQoG,EACxD,CAUM,YAAAkwC,CAAaT,EAAuCzvC,GACzD,OAAOxL,KAAKg7C,SAASU,aAAa17C,KAAMi7C,EAAYzvC,EACrD,CAWM,oBAAAs0C,CAAqBC,EAA4C/rC,EAAkBxI,GACxF,OAAOxL,KAAKg7C,SAAS8E,qBAAqB9/C,KAAM+/C,EAAa/rC,EAASxI,EACvE,CAUM,KAAAoS,CAAMxY,EAAwBoG,GACnC,OAAOxL,KAAKg7C,SAASgF,wBAAwBhgD,KAAMoF,EAAQoG,EAC5D,CAQM,gBAAAy0C,CAAiBhF,GACtB,MAAM54C,EAAS,CAAEimB,WAAYtoB,KAAK25C,IAAKv9C,KAAM6+C,GAC7C,OAAOj7C,KAAKg7C,SAASO,WAAWl5C,EACjC,CAUM,UAAA69C,CAAW7iD,EAAiBmO,GACjC,OAAOxL,KAAKg7C,SAASmF,mBAAmBngD,KAAM3C,EAASmO,EACxD,CAYM,aAAA40C,CAAc/iD,EAAiBmO,GACpC,OAAOxL,KAAKg7C,SAASqF,sBAAsBrgD,KAAM3C,EAASmO,EAC3D,CASM,cAAA80C,CAAen+B,GACpB,OAAOniB,KAAKg7C,SAASuF,yBAAwB,CAACxhD,EAAGyhD,EAAIC,KAC/C1hD,EAAEkB,KAAOD,KAAKC,IAChBkiB,EAAQpjB,EAAGyhD,EAAIC,EAChB,GAEJ,CAQM,aAAAC,CAAcv+B,GACnB,OAAOniB,KAAKg7C,SAAS2F,uBAAsB,CAAC5hD,EAAGw+C,EAAG74C,KAC5C3F,EAAEkB,KAAOD,KAAKC,IAChBkiB,EAAQpjB,EAAGw+C,EAAG74C,EACf,GAEJ,CAQM,gBAAAk8C,CAAiBz+B,GACtBniB,KAAKg7C,SAAS6F,iCAAgC,CAACC,EAAKzjD,EAASu3B,EAASC,KAChEisB,EAAI7gD,KAAOD,KAAKC,IAClBkiB,EAAQ9kB,EAASu3B,EAASC,EAASisB,EACpC,IAGH,IAEE3+B,EAAQniB,KAAK3C,QAAS2C,KAAK3C,QAAS,GAAI2C,KACzC,CAAC,MAAO0E,GACP,MACD,CACF,CAMM,IAAAwL,GACLlQ,KAAKg7C,SAAS+F,aAAa/gD,KAC5B,CAOM,KAAAy5B,CAAM11B,GACX,OAAO/D,KAAKg7C,SAASvhB,MAAMz5B,KAAM+D,EAClC,CAEM,MAAAi9C,CAAOxF,EAA6Bn+B,GACzC,IAAIiL,EAMJ,OAJEA,EADsB,iBAAbkzB,EACIA,EAEAA,EAASv7C,GAEjBD,KAAKg7C,SAASiG,iBAAiB34B,EAAYtoB,KAAKC,GAAIod,EAC5D,CAEM,kBAAA6jC,CAAmB11C,GACxBxL,KAAKg7C,SAASmG,6BAA4B,CAACC,EAAkBC,EAAkBzC,KACzEwC,IAAaphD,KAAK25C,KAItBnuC,EAASozC,EAAW,GAEvB,CAEM,UAAA0C,CAAW91C,GAChBxL,KAAKg7C,SAASuG,6BAA4B,CAACC,EAAkBC,EAA4BxiD,KACnFwiD,EAAiBxhD,KAAOD,KAAK25C,KAIjCnuC,EAASg2C,EAAQviD,EAAM,GAE1B,CAEM,WAAA46C,CAAYhmB,GACjBrzB,MAAMq5C,YAAYhmB,GAClBymB,GAAezmB,EAAMwrB,UAAW70C,GAAMxK,KAAKq/C,SAAW70C,IACtD8vC,GAAezmB,EAAM0rB,UAAW/0C,GAAMxK,KAAKu/C,SAAW/0C,IACtD8vC,GAAezmB,EAAM2rB,UAAWh1C,GAAMxK,KAAKw/C,SAAWh1C,KAClDqpB,EAAMyrB,SAAat/C,KAAKs/C,SAAYt/C,KAAKs/C,QAAQrgD,QAAU40B,EAAMyrB,QAAQrgD,QAC3Ee,KAAKs/C,QAAUzrB,EAAMyrB,QAExB,CAEM,kBAAAoC,CAAmBC,GACxB3hD,KAAK4hD,UAAYD,EAAUv6C,KAAKpE,GACvB,IAAIo7C,GAA2Bp+C,KAAKg7C,SAAUh7C,KAAK25C,IAAK32C,IAElE,CAED,YAAW6+C,GACT,OAAO7hD,KAAK4hD,SACb,CAEM,aAAAE,CAAcC,EAAev2C,GA2BlC,OAAOwzC,GA1BS,IAAIl5C,SAAkB,CAACC,EAAS4H,KAE9C,IAAIq0C,EAAkBhiD,KAAKs7C,QAAQ59C,OACX,IAApBskD,GACFj8C,EAAQ/F,MAGVA,KAAKs7C,QAAQl8C,SAASm+C,IACpBA,EAAE0E,iBAAiBH,cAAcC,GAAO,KACtCC,IACIA,GAAmB,GACrBj8C,EAAQ/F,KACT,GACD,IAGJsG,YAAW,KAEL07C,EAAkB,GACpBr0C,EAAO3N,KAAKC,GAAK,8CAAgD8hD,EAClE,GAEA,IAAK,IAIcv2C,EACzB,CAEM,aAAA02C,GAEL,OAAKliD,KAAKs7C,SAAmC,IAAxBt7C,KAAKs7C,QAAQ59C,OAI3BsC,KAAKs7C,QAAQ,GAAG2G,iBAAiBvD,WAH/B,EAIV,QC/UUyD,IACGA,GAAKC,MAAG,QACRD,GAAKE,MAAG,QACRF,GAAIG,KAAG,OACPH,GAAII,KAAG,OACPJ,GAAKtiD,MAAG,cAGXylB,GAOJ,eAAOk9B,CAASllD,GACrB,OAAO,IAAIgoB,GAAOhoB,EACnB,CAEM,UAAOmlD,CAAI9C,GAChB,OAAO,IAAIr6B,GAAOA,GAAOo9B,YAAY/C,GACtC,CAID,WAAApjD,CAAYe,GACV0C,KAAKqB,MAAQ/D,EAERggD,GAAuBh4B,GAAOq9B,cACjC3iD,KAAK4iD,YAAct9B,GAAOq9B,WAAW7iC,UAAUxiB,GAElD,CAEM,KAAAkjB,CAAMlT,GACNgwC,GAAuBt9C,KAAK4iD,aAG3Bt9B,GAAOu9B,QAAUV,GAASC,OAC5B/2C,QAAQwF,KAAK7Q,KAAK8iD,YAAYx1C,EAAS60C,GAASC,QAHlDpiD,KAAK4iD,YAAYpiC,MAAMlT,EAM1B,CAEM,KAAAiE,CAAMjE,GACNgwC,GAAuBt9C,KAAK4iD,aAG3Bt9B,GAAOu9B,QAAUV,GAASE,OAC5B/8B,GAAOu9B,QAAUV,GAASC,OAC1B/2C,QAAQwF,KAAK7Q,KAAK8iD,YAAYx1C,EAAS60C,GAASE,QAJlDriD,KAAK4iD,YAAYrxC,MAAMjE,EAO1B,CAEM,IAAAuD,CAAKvD,GACLgwC,GAAuBt9C,KAAK4iD,aAG3Bt9B,GAAOu9B,QAAUV,GAASE,OAC5B/8B,GAAOu9B,QAAUV,GAASC,OAC1B98B,GAAOu9B,QAAUV,GAASG,MAC1Bj3C,QAAQwF,KAAK7Q,KAAK8iD,YAAYx1C,EAAS60C,GAASG,OALlDtiD,KAAK4iD,YAAY/xC,KAAKvD,EAQzB,CAEM,IAAA4K,CAAK5K,GACLgwC,GAAuBt9C,KAAK4iD,aAG3Bt9B,GAAOu9B,QAAUV,GAASE,OAC5B/8B,GAAOu9B,QAAUV,GAASC,OAC1B98B,GAAOu9B,QAAUV,GAASG,MAC1Bh9B,GAAOu9B,QAAUV,GAASI,MAC1Bl3C,QAAQwF,KAAK7Q,KAAK8iD,YAAYx1C,EAAS60C,GAASG,OANlDtiD,KAAK4iD,YAAY1qC,KAAK5K,EASzB,CAEM,KAAAhC,CAAMgC,GACNgwC,GAAuBt9C,KAAK4iD,cAG/Bv3C,QAAQC,MAAMtL,KAAK8iD,YAAYx1C,EAAS60C,GAAStiD,QACjDwL,QAAQmV,SAHRxgB,KAAK4iD,YAAYt3C,MAAMgC,EAK1B,CAEM,WAAAw1C,CAAYx1C,EAAiB0Y,GAClC,MAAO,IAAMA,EAAQ,KAAOhmB,KAAKqB,MAAQ,MAAQiM,CAClD,CAKM,kBAAOo1C,CAAY7yB,GACxB,MACMrjB,EADgB,qBACUigB,KAAKoD,EAAOtzB,YAAYyB,YACxD,OAAQwO,GAAWA,EAAQ9O,OAAS,EAAK8O,EAAQ,GAAK,EACvD,EAzFa8Y,GAAAu9B,MAAgBV,GAASG,KCEpB,MAAAS,WAAuBrJ,GAYxC,WAAAn9C,CAAY0D,EAAY3C,EAAclB,EAAcksB,EAAoBtf,EAA6CyyC,EAAwBuH,EACzIC,GACAziD,MAAMP,GAZFD,KAAAi2B,QAAkB3Q,GAAOm9B,IAAI,UAajCziD,KAAKkjD,MAAQ9mD,EACb4D,KAAKmjD,YAAc76B,EACnBtoB,KAAKqB,MAAQ/D,EACb0C,KAAKojD,UAAYp6C,EACjBhJ,KAAKqjD,eAAiB5H,EACtBz7C,KAAKsjD,cAAgBN,EACrBhjD,KAAKujD,YAAcN,CACtB,CAOM,SAAAO,GACH,OAAOxjD,KAAKg7C,SAASyI,gBAAgBzjD,KAAKC,GAC7C,CAKD,QAAW3C,GACP,OAAO0C,KAAKqB,KACf,CAKD,iBAAWo6C,GACP,OAAOz7C,KAAKqjD,cACf,CAKD,QAAWjnD,GACP,GAAI4D,KAAKg7C,SACL,OAAOh7C,KAAKg7C,SAAS0I,cAAc1jD,KAAKkjD,MAG/C,CAKD,YAAW1H,GACP,IAAImI,GAAiB3jD,KAAKmjD,aAG1B,OAAOnjD,KAAKg7C,SAAS4I,gBAAgB5jD,KAAKmjD,YAC7C,CAKD,WAAWU,GACP,MAAM/C,EAAM9gD,KAAKw7C,SACjB,OAAImI,GAAiB7C,IAIdA,EAAInB,MAAM1/C,KAAOD,KAAKC,EAChC,CASM,UAAA6jD,CAAWC,EAAoBv4C,GAClC,OAAOxL,KAAKg7C,SAASgJ,oBAAoBhkD,KAAKC,GAAI8jD,EACrD,CAOM,QAAAE,CAASC,GACZ,OAAOlkD,KAAKg7C,SAASmJ,eAAenkD,KAAKC,GAAIikD,EAChD,CASM,SAAAE,CAAUC,EAAsB74C,GACnC,OAAOxL,KAAKg7C,SAASsJ,gBAAgBtkD,KAAKC,GAAIokD,EAAQ74C,EACzD,CAQM,KAAAuC,GACH,OAAO/N,KAAKg7C,SAASuJ,YAAYvkD,KAAKC,GACzC,CAKD,YAAW+I,GACP,OAAOhJ,KAAKojD,SACf,CAOD,oBAAWnB,GACP,MAAM78C,EAASpF,KAAKsjD,gBACpB,OAAKl+C,GAEM,CACHnF,GAAID,KAAKujD,YAIpB,CAEM,gBAAAiB,CAAiBh5C,GACpBxL,KAAKykD,iCAAiCtI,GAAgBS,6BAA8BpxC,EACvF,CAEM,iBAAAk5C,CAAkBl5C,GACrBxL,KAAKykD,iCAAiCtI,GAAgBU,2BAA4BrxC,EACrF,CAEM,WAAAquC,CAAYhmB,GACfymB,GAAezmB,EAAMsvB,aAAc34C,GAAMxK,KAAKmjD,YAAc34C,IAC5D8vC,GAAezmB,EAAMwvB,gBAAiB74C,GAAMxK,KAAKqjD,eAAiB74C,IAClE8vC,GAAezmB,EAAM0vB,aAAc/4C,GAAMxK,KAAKujD,YAAc/4C,IAC5D8vC,GAAezmB,EAAMqvB,OAAQ14C,GAAMxK,KAAKkjD,MAAQ14C,IAChD8vC,GAAezmB,EAAMxyB,OAAQmJ,GAAMxK,KAAKqB,MAAQmJ,IAE3C8yC,GAAuBzpB,EAAMuvB,aAC9BpjD,KAAKojD,UAAYvvB,EAAMuvB,UAE9B,CAEM,gCAAAqB,CAAiCnY,EAAmB9gC,GACvDxL,KAAKg7C,SAAS2F,uBAAsB,CAACnF,EAAUp2C,EAAQ+S,KAE/C/S,EAAOnF,KAAOD,KAAKC,IAInBkY,IAAUm0B,GACV9gC,EAASgwC,EACZ,GAER,CAEM,aAAA1B,CAAcjmB,GACjB7zB,KAAKujD,YAAc1vB,EAAM0vB,WAC5B,QC9LQoB,GAKX,WAAApoD,CAAY0C,EAAeqO,EAAiB2B,GAC1CjP,KAAKf,MAAQA,EACbe,KAAKsN,QAAUA,EACftN,KAAKiP,KAAOA,CACb,CAEM,QAAA/L,GACL,OAAOlD,KAAKf,KACb,CAEM,UAAA2lD,GACL,OAAO5kD,KAAKsN,OACb,CAEM,OAAAxP,GACL,OAAOkC,KAAKiP,IACb,ECcH,MAAM41C,GAAkB,QAElBC,GAA4B,YAK5BC,GAA2B,UAC3BC,GAA6B,YAC7BC,GAA6B,YAE7BC,GAA0B,SAC1BC,GAA0B,kBAE1BC,GAAwB,OAIxBC,GAAwB,gBAExBC,GAA4B,qBAC5BC,GAA8B,uBAE9BC,GAAgC,yBAMhCC,GAAuB,eASf,MAAOC,GAET,gDAAOC,CACX9J,EACAz+C,GAEA,MAAMwoD,EACDC,GACG,IAAI1K,GACA0K,OACA1hD,GAEZ,OAAO,IAAIq2C,GACPqB,EAAOv+C,KACPu+C,EAAOiK,YAAcF,EAAiB/J,EAAOiK,YAC7CjK,EAAOkK,cAAgBlK,EAAOkK,aAAa3+C,IAAIw+C,GAC/CxoD,EACP,CAEO,6CAAO4oD,CAAuCnK,GAClD,OAAO,IAAIV,GACPU,EAAOoK,WAC4CpsB,IAAe,GACzE,CAEO,kCAAOqsB,CAA4B/mD,EAAwBoT,GAC/D,MAAMisC,OAAwBr6C,IAAdhF,EAAIwgD,MAAsBxgD,EAAIwgD,MAAMv2C,QAAUjK,EAAIgnD,SAClE,OAAO,IAAIhH,GACPhgD,EAAIi7B,YACJj7B,EAAIinD,cACJ7zC,EACApT,EAAIs7B,iBACJ+jB,EACP,CAEO,0CAAO6H,CAAoCvF,GAC/C,OAAO,IAAInF,GAAsBmF,EAAK,IAAI9E,GAAiC8E,EAAIvuC,YAAQpO,GAC1F,CA6BD,WAAA5H,CAAYiL,GAuBR,GAzCIxH,KAAwBsmD,yBAAkD,GAC1EtmD,KAAkCumD,mCAAsD,GACxFvmD,KAA8BwmD,+BAAwD,GACtFxmD,KAAgCymD,iCAAoD,GAGpFzmD,KAA6B0mD,8BAAQ,GACrC1mD,KAA4B2mD,6BAAuC,GACnE3mD,KAAiBu2B,kBAAU,GAC3Bv2B,KAAqB4mD,sBAAQ,GAC7B5mD,KAA6B6mD,8BAAQ,GASzC7mD,KAAK8mD,QAAUt/C,EACfxH,KAAKk2B,YAAc1uB,EAAOD,WAC1BvH,KAAKi2B,QAAUzuB,EAAO0F,OACtBlN,KAAKu2C,UAAY/uC,EAAO0uC,SACxBl2C,KAAK+mD,SAAWv/C,EAAO8zC,QAEvBt7C,KAAKgnD,sBAAwB,IAAIlhD,SAAoBC,IACjD/F,KAAKinD,6BAA+BlhD,CAAO,IAG/C/F,KAAKknD,uBAAyB,IAAIphD,SAAiBC,IAC/C/F,KAAKmnD,8BAAgCphD,CAAO,IAG3C/F,KAAK8mD,QAAQx+B,YACdtoB,KAAKmnD,8BAA8B,CAAA,GAGvCnnD,KAAKq2B,YAAcr2B,KAAKk2B,YAAYvtB,OAChC,WACA,CAAC,SAAU,YAAa,eAAgB,UAEtB,oBAAXvD,OAAwB,CAE/B,MAAMO,EAAW,OAASA,SAGtBA,GAAYA,EAASyhD,eAEqB,mBAA/BzhD,EAAS0hD,mBAEhB1hD,EAAS0hD,mBAAkB,CAACjvC,EAAc9M,KACtCtL,KAAKq2B,YACAnuB,KACG,CACI9L,KAAM,WAEboR,MACIrO,IACG,GAAKA,EAAI6e,MAAT,CAIA,IACIrY,EAAS2hD,WAAWnoD,EAAI6e,MAC3B,CAAC,MAAOtZ,GAEL,YADA4G,EAAM5G,EAAE4I,SAAW5I,EAEtB,CACD0T,GAPC,MAFG9M,EAAM,yCASD,GAEbA,EAAM,IAKlB3F,GAAuD,mBAApCA,EAAS4hD,wBAE5B5hD,EAAS4hD,wBAAuB,CAACnvC,EAAc9M,KAC3CtL,KAAKq2B,YACAnuB,KACG,CACI9L,KAAM,WAEboR,MACIrO,IACG,GAAKA,EAAI6e,MAAT,CAIA,IACIrY,EAAS2hD,WAAWnoD,EAAI6e,MAC3B,CAAC,MAAOtZ,GAEL,YADA4G,EAAM5G,EAAE4I,SAAW5I,EAEtB,CACD0T,GAPC,MAFG9M,EAAM,yCASD,GAEbA,EAAM,IAI7B,CACJ,CAED,cAAWk8C,GACP,MAAO,KACV,CAEM,IAAAxjD,GAEHhE,KAAKynD,mDAGLznD,KAAKg5B,UACD+rB,GACA/kD,KAAK0nD,8BAET1nD,KAAKg5B,UACDgsB,GACAhlD,KAAK2nD,gCAET3nD,KAAK4nD,+CAEL5nD,KAAK6nD,uEAML7nD,KAAK8nD,kDAEL9nD,KAAK+nD,kDAEL/nD,KAAKg5B,UACDusB,GACAvlD,KAAKgoD,0BAEThoD,KAAKg5B,UACDwsB,GACAxlD,KAAKioD,4BAITjoD,KAAKkoD,+CAGLloD,KAAKg5B,UAxMgB,gBA0Mb,KACA,GAA4C,YAAxCh5B,KAAK8mD,QAAQqB,wBAIjB,GAA4C,SAAxCnoD,KAAK8mD,QAAQqB,uBAAmC,CAChD,GAAInoD,KAAK+mD,eAA0C,IAAvB/mD,KAAK+mD,SAASqB,KAEtC,YADApoD,KAAK+mD,SAASqB,KAAKr6C,QAGvB,GAAsB,oBAAX3I,QAAoD,mBAAnB,OAAS2I,MAEjD,YADA3I,OAAO2I,QAGX,GAAuB,oBAAZc,SAAqD,mBAAnB,QAAUw5C,KAEnD,YADAx5C,QAAQw5C,MAGf,OAhBGroD,KAAK83B,SAgBR,IAIT93B,KAAKq2B,YAAYztB,UAAS,KAEI,gBAAtB5I,KAAK8mD,QAAQwB,MACS,kCAAtBtoD,KAAK8mD,QAAQwB,KACbtoD,KAAKinD,6BAA6BjnD,MAElCA,KAAKq2B,YACAnuB,KACG,CACI9L,KAAM,YACNmsD,eAC2B,aAAtBvoD,KAAK8mD,QAAQwB,KAAsB,GACV,eAAtBtoD,KAAK8mD,QAAQwB,KAAwBtoD,KAAK8mD,QAAQ0B,aAAe,KAEhFh7C,MAAK,KACFxN,KAAKinD,6BAA6BjnD,KAAK,GAElD,IAELA,KAAKq2B,YAAY54B,MACpB,CAEM,OAAAq6B,GACH93B,KAAKu2B,kBAAkBn3B,SAAS8T,GAAQA,GAAOlT,KAAKk2B,YAAY3iB,IAAIL,KACpElT,KAAKu2B,kBAAkB74B,OAAS,CACnC,CAIM,KAAAmlB,GACH,OAAO/c,QAAQof,IAAI,CAACllB,KAAKgnD,sBAAuBhnD,KAAKknD,wBACxD,CAEM,SAAAuB,GACH,OAAOzoD,KAAKgnD,qBACf,CAEM,0BAAA0B,CAA2Bl9C,GAC9BxL,KAAKumD,mCAAmCrmD,KAAKsL,EAChD,CAEM,oBAAAm9C,CACHC,EACAnO,EACAC,EACAlzC,EACApK,GAEA,MAAMy+C,EAAsC,CAAA,EAC5CA,EAAOv+C,KAAOsrD,EACd,MAAMC,EAAwBC,KAA0C1sD,KAAM0sD,EAAiB1sD,KAAMkB,KAAMwrD,EAAiBxrD,KAAM2+B,cAAe6sB,IAKjJ,OAHAjN,EAAOiK,WAAa+C,EAAqBpO,GACzCoB,EAAOkK,aAAerL,EAActzC,IAAIyhD,GAEjC7oD,KAAKq2B,YACPnuB,KACG,CACI9L,KAAM0oD,GACN9xC,MAAO,CAAC6oC,KAEfruC,MAAK,KACF,MAAMu7C,EAAerD,GAAUC,0CAA0C9J,EAAQz+C,GAOjF,OANA4C,KAAKgpD,gBACDhpD,KAAKumD,mCACL,IAAI5K,GACAoN,EACA,IAAIjN,GAAmBK,GAAgBI,QAC3CuI,IACGiE,CAAY,GAE9B,CAEM,sBAAAE,CAAuBL,GAC1B,OAAO5oD,KAAKq2B,YACPnuB,KACG,CACI9L,KAzUiB,eA0UjB4W,MAAO,CAAC41C,KAEfp7C,MAAK,KACF,MAAMu7C,EAAe,IAAIvO,GAAaoO,OAAkBzkD,OAAWA,OAAWA,GAC9EnE,KAAKgpD,gBACDhpD,KAAKumD,mCACL,IAAI5K,GACAoN,EACA,IAAIjN,GAAmBK,GAAgBK,UAC3CsI,GAA0B,GAEzC,CAEM,wBAAAoE,CAAyB19C,GAC5BxL,KAAKymD,iCAAiCvmD,KAAKsL,EAC9C,CAMM,qBAAA29C,CACHlO,EACAmO,EACAjL,GACA,GAAIn+C,KAAK2mD,6BAA6B1L,GAClC,OAAOn1C,QAAQ6H,OAAO,IAAI9N,MAAM,0BAA0Bo7C,0BAG9Dj7C,KAAK2mD,6BAA6B1L,GAAcmO,EAIhD,MAAMvN,EAAS,CACX57C,GAAIg7C,EACJgL,UAAWhL,EACXhf,cAAekiB,GAEnB,OAAOn+C,KAAKq2B,YAAYnuB,KAAK,CACzB9L,KAAMkpD,GACN+D,UAAW,CAACxN,KAEXruC,MAAK,KACFxN,KAAKgpD,gBACDhpD,KAAKymD,iCACL,IAAI9K,GACA+J,GAAUM,uCAAuCnK,GACjD,IAAIC,GAAmBK,GAAgBI,QAC3C+I,GAA0B,IAEjC9iD,OAAM,YACIxC,KAAK2mD,6BAA6B1L,EAAW,GAE/D,CAEM,uBAAAqO,CAAwBrO,GAE3B,OADgBj7C,KAAK2mD,6BAA6B1L,WAK3Cj7C,KAAK2mD,6BAA6B1L,GAElCj7C,KAAKq2B,YAAYnuB,KAAK,CACzB9L,KAxXyB,wBAyXzBmtD,YAAa,CAACtO,KACfztC,MAAK,KACJxN,KAAKgpD,gBACDhpD,KAAKymD,iCACL,IAAI9K,GACA,IAAIR,GAAWF,OAAY92C,GAC3B,IAAI23C,GAAmBK,GAAgBK,UAC3C8I,GAA0B,KAdvBx/C,QAAQ6H,OAAO,IAAI9N,MAAM,0BAA0Bo7C,qBAgBjE,CAEM,sBAAAuO,CAAuBh+C,GAC1BxL,KAAKsmD,yBAAyBpmD,KAAKsL,EACtC,CAEM,gBAAAi+C,CAAiBV,EAAsB1rD,EAAkB4+B,GAC5D,MAAMytB,EAAmB,CACrBttD,KAvYoB,SAwYpBgqD,cAAe2C,EACfY,gBAAiBtsD,GAYrB,OATI2C,KAAK4pD,yBAAyB3tB,GAC9BytB,EAAYG,eAAiB,CACzB/D,WAAY,CAAE1pD,KAAM6/B,EAAc0jB,MAAMvjD,KAAMkB,KAAM2+B,EAAc0jB,MAAMriD,KAAM2+B,cAAeA,EAAc0jB,OAC3GoG,aAAc9pB,EAAc6tB,SAAW7tB,EAAc6tB,QAAQ1iD,KAAK2iD,IAAQ,CAAE3tD,KAAM2tD,EAAG3tD,KAAMkB,KAAMysD,EAAGzsD,KAAM2+B,cAAe8tB,OAG7HL,EAAYztB,cAAgBA,GAAiBA,EAAc70B,KAAK2iD,IAAE,CAAQ3tD,KAAM2tD,EAAG3tD,KAAMkB,KAAMysD,EAAGzsD,KAAM2+B,cAAe8tB,MAGpH/pD,KAAKgqD,2CACRN,EACAzE,IACA,CAAC9lD,EAAK6d,IAAc7d,EAAI8d,aAAeD,GACvC+nC,IACA,CAAC5lD,EAAK6d,EAAWitC,IAAY9qD,EAAIi7B,cAAgB6vB,EAAQ7vB,aACzD4qB,IACA,CAAC7lD,EAAK6d,EAAWitC,IAAY9qD,EAAIi7B,cAAgB6vB,EAAQ7vB,cACxDj7B,GAAQA,EAAIi7B,aACb,MAAM5sB,MAAMvN,GACkB,kCAAtBD,KAAK8mD,QAAQwB,MACRtoD,KAAK6mD,8BAA8BkC,GAcrC9oD,GAbCD,KAAK6mD,8BAA8BkC,IAAgB,EAE5C/oD,KAAKq2B,YACPnuB,KACG,CACI9L,KAAM,YACNmsD,eAAgB,CAACQ,KAExBv7C,MAAK,IACKvN,MAMlC,CAEM,YAAA8gD,CAAavF,GAChB,OAAOx7C,KAAKq2B,YAAYnuB,KAAK,CACzB9L,KA9aqB,UA+arBg+B,YAAaohB,EAASv7C,GACtB6sC,WAAY,2DACZn7B,OAAQ,wBACTnE,MAAMqsB,IAAM,GAClB,CAEM,qBAAAwmB,CAAsB7E,EAAoBn+C,EAAc6sD,EAAsBC,GACjF,GAAID,EAEA,OAAOlqD,KAAKu2C,UAAUlrB,IAAImwB,EAASv7C,GAAI5C,GAEvC8sD,EAAcA,GAAe,GAC7B,IAAK,MAAM3/C,KAAK2/C,EACZ9sD,EAAQmN,GAAK,KAEjB,OAAOxK,KAAKu2C,UAAUn2C,OAAOo7C,EAASv7C,GAAI5C,EAEjD,CAEM,cAAA+sD,CAAenP,EAAqBoP,GAIvC,MAAM,IAAIxqD,MAAM,sDACnB,CAEM,cAAAyqD,CAAeluD,EAAckB,EAAcitD,GAE9C,IAAIC,OAA2D,IAAlCxqD,KAAKk2B,YAAY/X,aAC9C,MAAM9U,EAASrJ,KAAKk2B,YAAY7sB,OAGhC,GAAsB,oBAAXjE,OAAwB,CAC/B,MAAMO,EAAWP,OAAOO,SACpBA,IACA6kD,OAAmD,IAA1B7kD,EAASyhD,aAEzC,CAeD,OAbIoD,GACAxqD,KAAKq2B,YAAYnuB,KAAK,CAClB9L,KA3dO,UA+df4D,KAAKgpD,gBACDhpD,KAAKwmD,+BACL,IAAI7K,GACA,IAAIoH,GAAe15C,EAAQ/L,EAAMlB,OAAM+H,EAAWnE,KAAKyqD,eAAephD,GAASkhD,EAAavqD,KAAK0qD,qBAAqBrhD,QAASlF,GAC/H,IAAI23C,GAAmBK,GAAgBI,QAC3C,mBAEGz2C,QAAQC,QAAQsD,EAC1B,CAEM,sBAAAshD,CAAuBn/C,GAC1BxL,KAAKwmD,+BAA+BtmD,KAAKsL,EAC5C,CAEM,YAAAkwC,CAAapzB,EAAoBwgC,GAI/BA,EAAiB8B,SACd9B,EAAiB/lC,MAAQ+lC,EAAiB+B,OAAS/B,EAAiBgC,QAAUhC,EAAiBnuC,OAC/FmuC,EAAiB8B,OAAS,CACtBtC,KAAM,SACNyC,SAAU,IAKtB,MAAMC,EAAY/qD,IACd,GAAKqoB,EAGL,OAAOtoB,KAAKirD,aAAa3iC,EAAYroB,EAAI6oD,EAAiBxrD,MACrDkQ,MAAK,IACKvN,GACT,EAGV,OAAOD,KAAKgqD,2CACR,CACI5tD,KAxgBY,cAygBZ6pD,UAAW6C,EAAiB1sD,KAC5B8uD,UAAWpC,EAAiBxrD,MAAQwrD,EAAiB1sD,KACrD6/B,cAAe6sB,EACf1uB,YAAa9R,QAEjBnkB,OACAA,EACAshD,IACA,CAACtmD,EAAK6d,IAAc7d,EAAI8d,aAAeD,QACvC7Y,OACAA,GACChF,GAAQA,EAAIgsD,YACbH,GACCx9C,KAAKw9C,EACb,CAEM,WAAAzG,CAAYtkD,GACf,OAAOD,KAAKq2B,YAAYnuB,KAAK,CACzB9L,KAphBiB,eAqhBjBgvD,gBAAiBnrD,IAClBuN,MAAMqsB,IAAe,GAC3B,CAEM,mBAAAwxB,GACH,IAAI/iC,EAAatoB,KAAK8mD,QAAQx+B,YAAetoB,KAAK8mD,QAAQwE,kBAAoBtrD,KAAK8mD,QAAQwE,iBAAiBhjC,WACxGijC,EAAsBvrD,KAAK8mD,QAAQwE,kBAAoBtrD,KAAK8mD,QAAQwE,iBAAiBC,mBACrFC,EAA6BxrD,KAAK8mD,QAAQwE,kBAAoBtrD,KAAK8mD,QAAQwE,iBAAiBE,0BAC5FC,EAAsBzrD,KAAK8mD,QAAQwE,kBAAoBtrD,KAAK8mD,QAAQwE,iBAAiBG,mBAEzF,GAAsB,oBAAXrmD,aACoB,IAApBA,OAAOC,UACdD,OAAOC,SAASqmD,QACW,mBAApBC,gBAAgC,CACvC,MAAMC,EAAe,IAAID,gBAAgBtmD,SAASqmD,OAAOnsD,MAAM,IAC/DgsD,EAAqBA,GAAsBK,EAAar5B,IAAI,eAC5Dg5B,EAAqBA,GAAsBK,EAAar5B,IAAI,8BACnB,IAA9Bi5B,IACPA,EAA4BI,EAAar5B,IAAI,iCAEjDk5B,EAAqBA,GAAsBG,EAAar5B,IAAI,yBAC5DjK,EAAaA,GAAcsjC,EAAar5B,IAAI,gBAC/C,CAMD,OAJAg5B,EAAqBA,GAAsB,UAC3CC,EAA4BA,IAA6B,EACzDC,EAAqBA,GAAsBzrD,KAAKk2B,YAAY7sB,OAErD,CACHghD,sBAAkBlmD,EAClBmkB,aACAijC,qBACAC,4BACAC,qBAEP,CAEM,YAAAR,CAAa3iC,EAAoBtQ,EAAkB1a,GACtD,MAAMuuD,EAAavuD,GAAQ,CAAEA,SAAW,CAAA,EACxC,OAAO0C,KAAKq2B,YAAYnuB,KAAK,CACzB9L,KAplBmB,gBAqlBnB0vD,UAAW9zC,EACXoiB,YAAa9R,KACVujC,IACJr+C,MAAK,KACJxN,KAAKgpD,gBACDhpD,KAAKwmD,+BACL,IAAI7K,GACA,IAAIoH,GAAe/qC,OAAU7T,OAAWA,EAAWmkB,EAAYtoB,KAAKyqD,eAAezyC,QAAW7T,EAAWnE,KAAK0qD,qBAAqB1yC,QAAW7T,GAC9I,IAAI23C,GAAmBK,GAAgBS,+BAC3C,oCAEJ58C,KAAKgpD,gBACDhpD,KAAKsmD,yBACL,IAAI3K,GACA,IAAIwD,GAAS72B,OAAYnkB,EAAW,IAAIwgD,GAAe,eAAWxgD,OAAWA,QAAYA,OAAWA,GACpG,IAAI23C,GAAmBK,GAAgBM,UAC3C,6BAA6B,GAExC,CAEM,aAAAsP,CAAczjC,EAAoBtQ,GACrC,OAAOhY,KAAKq2B,YAAYnuB,KAAK,CACzB9L,KAxmBmB,iBAymBnB0vD,UAAW9zC,EACXoiB,YAAa9R,IACd9a,MAAK,KACJxN,KAAKgpD,gBACDhpD,KAAKwmD,+BACL,IAAI7K,GACA,IAAIoH,GAAe/qC,OAAU7T,OAAWA,EAAW,KAAMnE,KAAKyqD,eAAezyC,QAAW7T,EAAWnE,KAAK0qD,qBAAqB1yC,QAAW7T,GACxI,IAAI23C,GAAmBK,GAAgBU,6BAC3C,kCAEJ78C,KAAKgpD,gBACDhpD,KAAKsmD,yBACL,IAAI3K,GACA,IAAIwD,GAAS72B,OAAYnkB,EAAW,IAAIwgD,GAAe,eAAWxgD,OAAWA,QAAYA,OAAWA,GACpG,IAAI23C,GAAmBK,GAAgBM,UAC3C,2BAA2B,GAEtC,CAGM,gBAAAuP,GACH,OAAOlmD,QAAQC,QAAQ,GAC1B,CAEM,cAAAkmD,GACH,OAAOnmD,QAAQC,QAAQ,GAC1B,CAEM,aAAAmmD,GACH,OAAOpmD,QAAQC,QAAQ,GAC1B,CAEM,kBAAAomD,GACH,OAAOrmD,QAAQC,QAAQ,GAC1B,CAOM,oBAAA+5C,CAAqB7/C,EAAYmsD,EAAuCp4C,GAE9E,CAGM,eAAAyvC,CAAgBxjD,GAEtB,CAGM,eAAAqkD,CAAgBrkD,EAAYokD,GAElC,CAGM,cAAAF,CAAelkD,EAAYikD,GAEjC,CAGM,mBAAAF,CAAoB/jD,EAAYosD,GAEtC,CAGM,aAAAC,CAAcrsD,EAAYssD,GAEhC,CAGM,gBAAAtL,CAAiBjmC,EAAcggB,EAAY3d,GAC9C,OAAOrd,KAAKq2B,YAAYnuB,KAAK,CACzB9L,KAhrBsB,QAirBtBowD,KAAMxxB,EACNyxB,MAAOzxC,GAEd,CAGM,gBAAA6jC,CAAiBv2B,EAAoBokC,GACxC,OAAO1sD,KAAKq2B,YAAYnuB,KAAK,CACzB9L,KAxrBqB,QAyrBrB4e,KAAMsN,IAEP9a,MAAK,IAAM,IACjB,CAGM,oBAAAm/C,CAAqBnhD,GAE3B,CAGM,oBAAAohD,CAAqBphD,GAE3B,CAEM,sCAAAqhD,CAAuCrhD,GAE7C,CAGM,sBAAAshD,GACH,OAAOhnD,QAAQC,QAAQ,GAC1B,CAMO,kBAAAgnD,GAEJ,OAAO/sD,KAAKk2B,YAAY7sB,OAAS,IAAMqK,KAAKu0B,MAAsB,IAAhBv0B,KAAKC,SAC1D,CAEO,4CAAAq5C,CACJC,EACAC,EACAC,EACAlrC,GAEA,MAAMmrC,EAAqBC,GAAsBxR,GAAgB,IAAIF,GACjEE,EACA,IAAIC,GACAuR,EACIlR,GAAgBI,MAChBJ,GAAgBK,UAe5B,MAAO,CAZMyQ,GAAoBjtD,KAAKstD,6BAClCL,GACC9tD,GAAQguD,EAAOhuD,GAAK,IACrBiuD,GAAkB,GAClBnrC,GAESirC,GAAsBltD,KAAKstD,6BACpCJ,GACC/tD,GAAQguD,EAAOhuD,GAAK,IACrBiuD,GAAkB,GAClBnrC,IAEgB5f,QAAQmI,GAAMA,GACrC,CAEO,4BAAA8iD,CACJv0C,EACAo0C,EACAI,EACAprC,GACA,OAAOniB,KAAKg5B,UACRjgB,GACC5Z,IACGguD,EAAOhuD,GACFC,SAASouD,GACNrrC,EAAQ/iB,SAASquD,GAAMA,EAAEF,EAAeC,EAAKruD,OAAO,GAEvE,CAEO,0CAAA6qD,CACJ7qD,EACAuuD,EACAC,EACAzzB,EACA0zB,EACAC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAAQjuD,KAAK+sD,qBAEnB,IAAImB,EACAC,EACJ,MAAMC,EAAiB,IAAItoD,SAAsB,CAACC,EAAS4H,KACvDugD,EAAwBnoD,EACxBooD,EAAuBxgD,CAAM,IAGjC,IAEI0gD,EACAC,EACAC,EACAC,EALAC,EAA2B,KAO/B,MAAMC,EAAoB,KACtB1uD,KAAK2uD,iBAAiBN,GACjBL,GACDhuD,KAAK2uD,iBAAiBL,GAE1BtuD,KAAK2uD,iBAAiBJ,GACtBvuD,KAAK2uD,iBAAiBH,EAAkB,EAG5CH,EAAwBX,GACpB1tD,KAAKg5B,UACD00B,GACCkB,IACQjB,EAAuBiB,EAAMX,KAGlCQ,EAAsBG,EACtB5uD,KAAK2uD,iBAAiBN,GAAsB,IAGxD,IAAIQ,GAAY,EAChBP,EACItuD,KAAKg5B,UACDkB,GACC40B,IACQlB,EAAqBkB,EAAMb,EAAOQ,KAGnCI,EACIb,GACAA,EAAmBD,EAAkCe,KAGzDD,GAAY,EACZX,EAAsBH,EAAkCe,KAC3D,IAEbP,EAAwBV,GACpB7tD,KAAKg5B,UACD60B,GACCkB,IACQjB,EAAuBiB,EAAMd,EAAOQ,IAGzCN,EAAqBY,EAAK,IAEtCP,EAAoBX,GAChB7tD,KAAKg5B,UACD6rB,IACCmK,IACOA,EAAK/xC,aAAegxC,GAGxBE,EAAqBa,EAAK,IAGtC7vD,EAAI8d,WAAagxC,EAEjB,MAAMgB,EAAWjvD,KAAKq2B,YACjBnuB,KAAK/I,GACLqO,MAAK,IACK4gD,IAGf,OADAa,EAASzhD,KAAKkhD,EAAmBA,GAC1BO,CACV,CAIO,mCAAAC,CAAoCC,EAAmB3Q,GAC3D,MAAM4Q,EAAWpvD,KAAK0mD,8BAA8BlI,EAAU,IAAM2Q,GACpE,OAAKC,EAGM,IAAIjU,GAAWiU,OAAUjrD,GAFzB,IAId,CAEO,SAAA60B,CAAoBjgB,EAAqBoJ,GAC7C,MAAMjP,EAAMlT,KAAKk2B,YAAY/iB,GACzB4F,GACC5Z,GAAkBgjB,EAAQrM,KAAK9V,KAAbmiB,CAAmBhjB,KAI1C,OAFAa,KAAKu2B,kBAAkBr2B,KAAKgT,GAErBA,CACV,CAEO,gBAAAy7C,CAAiBr1B,GACjBA,IACAt5B,KAAKk2B,YAAY3iB,IAAI+lB,UACdt5B,KAAKu2B,kBAAkBv2B,KAAKu2B,kBAAkBljB,QAAQimB,IAEpE,CAEO,eAAA0vB,CACJh+C,EACAmN,EACA/a,GACA4N,EAAU5L,SAAS2/C,IACf,IACIA,EAAG5mC,EACN,CAAC,MAAOpM,GACL/L,KAAKi2B,QAAQ3qB,MAAM,YAAYlO,GAAe+a,EAAM9a,QAAQjB,kBAAoByK,KAAKC,UAAUiF,GAClG,IAER,CAEO,4BAAA27C,CAA6BvoD,GAC5BA,EAAIg5B,WAGAn4B,KAAK4mD,sBAAsBznD,EAAIi7B,cAChCp6B,KAAKqvD,mBAAmBlwD,GAH5Ba,KAAKi2B,QAAQ3qB,MAAM,6CAA+CnM,EAAIi7B,YAM7E,CAEO,wBAAMi1B,CAAmBlwD,GAC7B,MAAMmpB,EAAanpB,EAAIi7B,YACvBp6B,KAAK4mD,sBAAsBt+B,SACjBtoB,KAAKu2C,UAAUvd,UAAU1Q,GAC3B,CAAC/Z,EAAWqmB,EAAcC,KACtB,MAAM1c,EAAQ,IAAIwjC,GACd,IAAIwD,GAAS72B,OAAYnkB,OAAWA,EAAWoK,OAAMpK,GACrD,IAAIk4C,GAAmC9tC,EAAMqmB,EAASC,IAE1D70B,KAAKgpD,gBACDhpD,KAAKsmD,yBACLnuC,EACA,kBAAkB,GAErC,CAEO,8BAAAwvC,CAA+BxoD,GACnC,MAAMmwD,EAAqBtvD,KAAK4mD,sBAAsBznD,EAAIi7B,aACxB,mBAAvBk1B,GACPA,WAEGtvD,KAAK4mD,sBAAsBznD,EAAIi7B,YACzC,CAEO,wBAAA4tB,CAAyB7oD,GAC7BA,EAAIkqD,UAAUjqD,SAASy8C,IACnB77C,KAAK0mD,8BAA8BvnD,EAAIgnD,SAAW,IAAMtK,EAAO57C,IAAM47C,EAAOoK,SAAS,GAE5F,CAEO,0BAAAgC,CAA2B9oD,GAC/BA,EAAIoqD,YAAYnqD,SAAS+vD,WACdnvD,KAAK0mD,8BAA8BvnD,EAAIgnD,SAAW,IAAMgJ,EAAU,GAEhF,CAEO,gDAAA1H,GACJznD,KAAKgtD,6CAx8BwB,cAEC,iBAy8B1B,CAAC7tD,EAA4BkuD,IAAYA,EACnCluD,EAAI6T,MAAM5L,KAAKkI,GAAMo2C,GAAUC,0CAA0Cr2C,OAAGnL,KAC5EhF,EAAI6T,MAAM5L,KAAKkI,GAAM,IAAIkrC,GAAalrC,EAAEhS,UAAM6G,OAAWA,OAAWA,MAC1EnE,KAAKumD,mCAEZ,CAEO,oEAAAsB,GAIJ,IAAK,MAAM0H,IAA0B,CAACxK,GAA0BG,GAAyBG,IACrFrlD,KAAKstD,6BACDiC,GACCpwD,GACG,CAAEA,EAAIwgD,OAAS,IAAKxgD,EAAK/C,KAAM+C,EAAI8mD,UAAW3oD,KAAM6B,EAAI+rD,UAAW9hD,QAASjK,EAAIgnD,WAC3E9nD,OAAOc,EAAIqwD,cAAgB,IAC3BpoD,KAAKyJ,GAAc,IAAIkyC,GAAelyC,EAAKzH,QAASyH,EAAKvT,KAAMuT,EAAKzU,KAAM+C,EAAIi7B,YAAap6B,KAAKyqD,eAAe55C,EAAKzH,cAAUjF,EAAWnE,KAAK0qD,qBAAqB75C,EAAKzH,cAAUjF,OAC3L,CAACqpD,EAAKruD,IAAQ,IAAIw8C,GAA4B6R,EAAK,IAAI1R,GAAmBK,GAAgBS,gCAC1F58C,KAAKwmD,+BAEhB,CAEO,4CAAAoB,GAIJ,IAAK,MAAM6H,IAAkB,CAAC1K,GAA0BG,IACpDllD,KAAKstD,6BACDmC,GACCtwD,GAAQ,CAACumD,GAAUQ,4BAA4B/mD,EAAK,IAAIwlD,GAAe,UAAW,GAAI,IAAInoD,UAC3F,CAACgxD,EAAKruD,IAAQumD,GAAUW,oCAAoCmH,IAC5DxtD,KAAKsmD,0BAGbtmD,KAAKstD,6BACDtI,IACC7lD,GAAQ,CAACumD,GAAUQ,4BAA4B/mD,EAAK,IAAIwlD,GAAe,YAAaxlD,EAAIwS,OAAQ,IAAInV,UACrG,CAACgxD,EAAKruD,IAAQumD,GAAUW,oCAAoCmH,IAC5DxtD,KAAKsmD,0BAETtmD,KAAKstD,6BACDrI,IACC9lD,GAAQ,CAACumD,GAAUQ,4BAA4B/mD,EAAK,IAAIwlD,GAAe,UAAW,GAAI,IAAInoD,UAC3F,CAACgxD,EAAKruD,IAAQumD,GAAUW,oCAAoCmH,IAC5DxtD,KAAKsmD,0BAETtmD,KAAKstD,6BACDjI,IACClmD,GAAQ,CAACumD,GAAUQ,4BAA4B/mD,EAAK,IAAIwlD,GAAe,UAAW,GAAI,IAAInoD,UAC3F,CAACgxD,EAAKruD,IAAQumD,GAAUW,oCAAoCmH,IAC5DxtD,KAAKsmD,yBACZ,CAEO,+CAAAwB,GACJ9nD,KAAKgtD,6CACDzH,GACAC,IACA,CAACrmD,EAA2BkuD,IAAqBA,EAC3CluD,EAAIkqD,UAAUjiD,IAAIs+C,GAAUM,wCAC5B7mD,EAAIoqD,YAAYniD,KAAKnH,GAAOD,KAAKkvD,oCAAoCjvD,EAAId,EAAIgnD,YAAW9jD,QAAQmI,GAAW,MAALA,KAC5GxK,KAAKymD,iCACZ,CAEO,+CAAAsB,GACJ/nD,KAAKg5B,UAp/BkB,kBAs/BlB75B,IACG,MAAMiqD,EAAUppD,KAAK2mD,6BAA6BxnD,EAAIuwD,cACtD,GAAKtG,EAUL,IACI,MAAMntB,EAAgB98B,EAAI88B,eAAiB,GAS3CA,EAAc0zB,cAAgB1zB,EAAc0zB,eAAiBxwD,EAAIwwD,cACjE1zB,EAAcyzB,aAAezzB,EAAcyzB,cAAgBvwD,EAAIuwD,aAC/D,MAAMxgD,EAAUk6C,EAAQ,CACpB9gC,WAAYnpB,EAAIq8C,UAAYr8C,EAAIq8C,SAASv7C,GACzC8oD,aAAc5pD,EAAIq8C,UAAYr8C,EAAIq8C,SAASp/C,KAC3CA,KAAM+C,EAAI88B,eAAiB98B,EAAI88B,cAAc7/B,KAC7Cy5C,QAAS5Z,EAAc0zB,cACvB1zB,kBAEA/sB,GAAWA,EAAQ1B,MAAQ0B,EAAQ1M,OACnC0M,EAAQ1M,OAAOuJ,GAAQ/L,KAAKq2B,YAAYnuB,KACpC,CACI9L,KAAMyoD,GACN5nC,WAAY9d,EAAI8d,WAChBtL,OAAQ5F,IAAQA,EAAIuB,SAAWzG,KAAKC,UAAUiF,OAG7D,CAAC,MAAOA,GACL/L,KAAKq2B,YAAYnuB,KACb,CACI9L,KAAMyoD,GACN5nC,WAAY9d,EAAI8d,WAChBtL,OAAQ5F,IAAQA,EAAIuB,SAAWzG,KAAKC,UAAUiF,KAEzD,MA3CG/L,KAAKq2B,YAAYnuB,KACb,CACI9L,KAAMyoD,GACN5nC,WAAY9d,EAAI8d,WAChBtL,OAAQ,wBAAwBxS,EAAIuwD,gBAuC/C,GAEZ,CAEO,4CAAAxH,GACJ,IAAK,MAAM0H,IAAiB,CAACzK,GAAyBD,IAClDllD,KAAKg5B,UAAU42B,GACVzwD,IACG,MAAM0wD,EAAYD,IAAkBzK,GAA2BhmD,EAAI2wD,UAAY3wD,EAAIiK,QAC7E2mD,EAAcH,IAAkBzK,GAA2BhmD,EAAI6wD,YAAc7wD,EAAI8mD,UACjFgK,EAAcL,IAAkBzK,GAA2BhmD,EAAI+wD,YAAc/wD,EAAI+rD,UAEjFrP,EAAS,IAAIkH,GACf8M,EACAI,EACAF,EACA5wD,EAAIi7B,YACJp6B,KAAKyqD,eAAeoF,QACpB1rD,EACAnE,KAAK0qD,qBAAqBmF,QAC1B1rD,GAICnE,KAAK4mD,sBAAsBznD,EAAIi7B,aAMzBw1B,IAAkB1K,IACzBllD,KAAKmnD,8BAA8B,CAAA,GANnCnnD,KAAKqvD,mBAAmBlwD,GAAKqO,MAAK,KAC1BoiD,IAAkB1K,IAClBllD,KAAKmnD,8BAA8B,CAAA,EACtC,IAQTnnD,KAAKgpD,gBACDhpD,KAAKwmD,+BACL,IAAI7K,GACAE,EACA,IAAIC,GAAmBK,GAAgBS,+BAC3CgT,EAAc,IAK9B5vD,KAAKg5B,UACDosB,IACCjmD,IACG,MAAM08C,EAAS,IAAIkH,GACf5jD,EAAIgxD,aACJhsD,OACAA,EACA,KACAnE,KAAKyqD,eAAetrD,EAAIgxD,cACxBhsD,EACAnE,KAAK0qD,qBAAqBvrD,EAAIgxD,cAC9BhsD,GAEJnE,KAAKgpD,gBACDhpD,KAAKwmD,+BACL,IAAI7K,GACAE,EACA,IAAIC,GAAmBK,GAAgBU,6BAC3CuI,GAAsB,IAGlCplD,KAAKgtD,6CACDvH,QACAthD,GACChF,GAAQ,CACL,IAAI4jD,GACA5jD,EAAIgsD,gBACJhnD,OACAA,OACAA,OACAA,OACAA,EACAnE,KAAK0qD,qBAAqBvrD,EAAIgsD,iBAC9BhnD,KACRnE,KAAKwmD,+BACZ,CAEO,cAAAiE,CAAexqD,GACnB,OAAOD,KAAK8mD,QAAQzO,IAAIpb,UAAUxjB,MAAMzW,GAAMA,EAAEqG,SAAWpJ,GAAM+C,EAAEgV,WAAa/X,GACnF,CAEO,oBAAAyqD,CAAqBrhD,GACzB,MAAO,KACH,MAAMi0B,EAASt9B,KAAKyqD,eAAephD,GACnC,IAAKi0B,EACD,OAEJ,MAAMtlB,EAAWslB,EAAOtlB,SACxB,OAAOhY,KAAK8mD,QAAQxL,QAAQ8U,OAAO/tD,QAAQk7C,GAAMA,EAAEt9C,KAAO+X,IAAU,EAAE,CAE7E,CAEO,wBAAA4xC,CAAyBttD,GAC7B,YAAqB,IAAVA,KAGNA,EAAiCqjD,KAIzC,EC/pCS,MAAO0Q,GAcnB,WAAA9zD,CAAY8hD,EAA0B/C,GAZ/Bt7C,KAAWswD,YAAoD,GAC/DtwD,KAAWuwD,YAAoD,GAC/DvwD,KAAawwD,cAAwE,GACrFxwD,KAAeywD,gBAA4F,GAC3GzwD,KAA4B0wD,6BAAqC,GACjE1wD,KAA0B2wD,2BAAiD,GAC3E3wD,KAA2B4wD,4BAAiD,GAC5E5wD,KAAyB6wD,0BAAwF,GAGjH7wD,KAAAi2B,QAAkB3Q,GAAOm9B,IAAIziD,MAGlCA,KAAK8wD,GAAKzS,EACVA,EAAQx7B,QACLrV,MAAMujD,IAELA,EAAGlQ,gCAAgC7gD,KAAKgxD,2BAA2Bl7C,KAAK9V,OACxE+wD,EAAGpQ,sBAAsB3gD,KAAKixD,wBAAwBn7C,KAAK9V,OAC3D+wD,EAAG5P,4BAA4BnhD,KAAKkxD,6BAA6Bp7C,KAAK9V,OACtE+wD,EAAGxP,4BAA4BvhD,KAAKmxD,6BAA6Br7C,KAAK9V,OAClEs7C,GACFA,EAAQ8V,0BAA0BpxD,KAAKqxD,kCAAkCv7C,KAAK9V,MAC/E,GAEN,CAOD,UAAWoF,GACT,GAAIk4C,GAAuBt9C,KAAKsxD,IAAK,CACnC,MAAMC,EAAmBvxD,KAAK8wD,GAAGS,iBAC7BA,EAAiB7zD,OAAS,IAC5BsC,KAAKsxD,GAAKC,EAAiB,GAE9B,CACD,OAAOvxD,KAAKsxD,EACb,CAQD,YAAW9V,GACT,MAAMgW,EAAQxxD,KAAKoF,OACnB,IAAIk4C,GAAuBkU,GAG3B,OAAOA,EAAMhW,QACd,CASM,YAAAE,CAAaT,GAClB,OAAOj7C,KAAK8wD,GAAGpV,aAAa17C,KAAKw7C,SAAUP,EAC5C,CAUM,oBAAA6E,CAAqBC,EAA4C/rC,GACtE,OAAOhU,KAAK8wD,GAAGhR,qBAAqB9/C,KAAKw7C,SAAUuE,EAAa/rC,EACjE,CAOD,WAAW3W,GACT,MAAMm+C,EAAWx7C,KAAKw7C,SACtB,OAAImI,GAAiBnI,GACZ,GAGFA,EAASn+C,OACjB,CAWM,aAAA+iD,CAAc/iD,EAAiBmO,GACpC,MAAMgwC,EAAWx7C,KAAKw7C,SACtB,OAAImI,GAAiBnI,GACZ,IAAI11C,SAAgB,CAACC,EAAS4H,KACnCA,EAAO,kBAAkB,IAItB6tC,EAAS4E,cAAc/iD,EAASmO,EACxC,CASM,UAAA00C,CAAW7iD,EAAiBmO,GACjC,MAAMgwC,EAAWx7C,KAAKw7C,SACtB,OAAImI,GAAiBnI,GACZ,IAAI11C,SAAQ,CAACC,EAAS4H,KAC3BA,EAAO,kBAAkB,IAItB6tC,EAAS0E,WAAW7iD,EAASmO,EACrC,CAEM,gBAAAg5C,CAAiBh5C,GACtBxL,KAAK2wD,2BAA2BzwD,KAAKsL,GAGrC,MAAMgmD,EAAQxxD,KAAKoF,OACdk4C,GAAuBkU,IAAWlU,GAAuBkU,EAAMhW,WAClEhwC,EAASgmD,EAAMhW,SAElB,CAEM,cAAAiW,CAAejmD,GACpBxL,KAAK4wD,4BAA4B1wD,KAAKsL,EACvC,CAQM,gBAAAo1C,CAAiBp1C,GACtBxL,KAAK6wD,0BAA0B3wD,KAAKsL,GAGpC,MAAMgmD,EAAQxxD,KAAKoF,OACnB,GAAIk4C,GAAuBkU,GACzB,OAGF,MAAMhW,EAAWgW,EAAMhW,SACnB8B,GAAuB9B,IAY3BhwC,EAASgwC,EAASn+C,QAASm+C,EAASn+C,QAAS,GAAIm+C,EAClD,CAEM,KAAA/hB,CAAM11B,EAAuByH,GAClC,MAAMs1C,EAAM9gD,KAAKw7C,SACjB,OAAOx7C,KAAK8wD,GAAGr3B,MAAMqnB,EAAK/8C,EAASyH,EACpC,CAEM,MAAAw1C,CAAOxF,EAA6Bn+B,GACzC,IAAIiL,EAMJ,OAJEA,EADsB,iBAAbkzB,EACIA,EAEAA,EAASv7C,GAEjBD,KAAK8wD,GAAG7P,iBAAiB34B,EAAYtoB,KAAKw7C,SAASv7C,GAAIod,EAC/D,CAEM,kBAAA6jC,CAAmB11C,GACxBxL,KAAKswD,YAAYpwD,KAAKsL,EACvB,CAEM,kBAAAkmD,CAAmBlmD,GACxBxL,KAAKuwD,YAAYrwD,KAAKsL,EACvB,CAEM,oBAAAmmD,CAAqBnmD,GAC1BxL,KAAKwwD,cAActwD,KAAKsL,EACzB,CAEM,sBAAAomD,CAAuBpmD,GAC5BxL,KAAKywD,gBAAgBvwD,KAAKsL,EAC3B,CAED,YAAWq2C,GACT,OAAK7hD,KAAKw7C,SAIHx7C,KAAKw7C,SAASqG,SAHZ,EAIV,CAEM,aAAAC,CAAcC,EAAev2C,GAElC,OAAIxL,KAAKw7C,SACAx7C,KAAKw7C,SAASsG,cAAcC,EAAOv2C,GAEnC1F,QAAQC,QAAQ,KAE1B,CAEM,aAAAm8C,GAEL,OAAIliD,KAAKw7C,SACAx7C,KAAKw7C,SAAS0G,gBAGhB,EACR,CAEM,mBAAA2P,CAAoBrmD,GACzBxL,KAAK0wD,6BAA6BxwD,KAAKsL,EACxC,CAEO,0BAAAwlD,CAA2BxV,EAAoBn+C,EAAiB+2B,EAAeS,GACrF,MAAM28B,EAAQxxD,KAAKoF,OACnB,GAAIk4C,GAAuBkU,GACzB,OAGF,MAAMM,EAAaN,EAAMhW,SACrB8B,GAAuBwU,IAKvBtW,EAASv7C,KAAO6xD,EAAW7xD,IAI/BD,KAAK+xD,wBAAwBvW,EAAUn+C,EAAS+2B,EAAOS,EACxD,CAEO,uBAAAo8B,CAAwBzV,EAAoBp2C,EAAwB+S,GAEtEmlC,GAAuBt9C,KAAKoF,SAK5BpF,KAAKoF,OAAOnF,KAAOmF,EAAOnF,KAI1BkY,IAAUgkC,GAAgBS,8BAC5B58C,KAAKgyD,qBAAqBxW,EAAUx7C,KAAK2wD,4BAqCzC3wD,KAAK+xD,wBAAwBvW,EAAUA,EAASn+C,QAAS,KAAM,OAItD8a,IAAUgkC,GAAgBU,4BACnC78C,KAAKgyD,qBAAqBxW,EAAUx7C,KAAK4wD,6BAG5C,CAEO,oBAAAoB,CAAqBxW,EAAoByW,GAC/CA,EAAc7yD,SAAS8M,IACrB,IACEA,EAAQsvC,EAAUrjC,MACnB,CAAC,MAAOzT,GACP1E,KAAKi2B,QAAQ/d,KAAK,0BAA4BxT,EAC/C,IAEJ,CAEO,uBAAAqtD,CAAwBvW,EAAoBn+C,EAAiB+2B,EAAgBS,GACnFT,EAAQA,GAAS,GACjBS,EAAUA,GAAW,GAErB70B,KAAK6wD,0BAA0BzxD,SAAS8M,IACtC,IACEA,EAAQ7O,EAAS+2B,EAAOS,EAAS2mB,EAClC,CAAC,MAAO92C,GACP1E,KAAKi2B,QAAQ/d,KAAK,0BAA4BxT,EAC/C,IAEJ,CAEO,eAAAwtD,CAAgBjzD,GAEtBe,KAAKswD,YAAYlxD,SAAS2/C,IACxB,IACEA,EAAG9/C,EACJ,CAAC,MAAOyF,GACP1E,KAAKi2B,QAAQ/d,KAAK,0BAA4BxT,EAC/C,IAEJ,CAEO,eAAAytD,CAAgBlzD,GAEtBe,KAAKuwD,YAAYnxD,SAAS2/C,IACxB,IACEA,EAAG9/C,EACJ,CAAC,MAAOyF,GACP1E,KAAKi2B,QAAQ/d,KAAK,0BAA4BxT,EAC/C,IAEJ,CAEO,iBAAA0tD,CAAkBnzD,GAExBe,KAAKwwD,cAAcpxD,SAAS2/C,IAC1B,IACEA,EAAG/+C,KAAKw7C,SAAUv8C,EACnB,CAAC,MAAOyF,GACP1E,KAAKi2B,QAAQ/d,KAAK,0BAA4BxT,EAC/C,IAEJ,CAEO,mBAAA2tD,CAAoBC,EAAoB/vD,EAAoBtD,GAElEe,KAAKywD,gBAAgBrxD,SAAS2/C,IAC5B,IACEA,EAAGuT,EAAU/vD,EAAUtD,EACxB,CAAC,MAAOyF,GACP1E,KAAKi2B,QAAQ/d,KAAK,0BAA4BxT,EAC/C,IAEJ,CAEO,4BAAAwsD,CAA6B1P,EAAkBviD,GACrD,MAAMuyD,EAAQxxD,KAAKoF,OACnB,GAAIk4C,GAAuBkU,GACzB,OAGF,MAAMM,EAAaN,EAAMhW,SACrB8B,GAAuBwU,IAKvBtQ,EAAOvhD,KAAO6xD,EAAW7xD,KAIzBhB,EAAMw/C,UAAUprC,QAAQm+C,EAAMvxD,KAAO,EACvCD,KAAKoyD,kBAAkBnzD,GAIzBe,KAAKkyD,gBAAgBjzD,GACtB,CAEO,4BAAAkyD,CAA6B3P,EAAkB+Q,EAAkBtzD,GACvE,MAAMuyD,EAAQxxD,KAAKoF,OACnB,GAAIk4C,GAAuBkU,GACzB,OAGF,MAAMM,EAAaN,EAAMhW,SACrB8B,GAAuBwU,KAKvBS,EAAOtyD,KAAO6xD,EAAW7xD,IAC3BD,KAAKmyD,gBAAgBlzD,GAGnBuiD,EAAOvhD,KAAO6xD,EAAW7xD,IAC3BD,KAAKqyD,oBAAoB7Q,EAAQ+Q,EAAQtzD,GAE5C,CAEO,iCAAAoyD,CAAkCjsD,GACxC,MAAM07C,EAAM9gD,KAAKw7C,SACZsF,GAIAA,EAAInB,OAILmB,EAAInB,MAAMsC,iBAAiBhiD,KAAOmF,EAAOnF,IAC3CD,KAAK0wD,6BAA6BtxD,SAASoM,IACzCA,EAASpG,EAAOs5C,WAAW,GAGhC,QCveU8T,GAYX,WAAAj2D,CAAYe,EAAcm1D,GAGxB,GAFAzyD,KAAKi2B,QAAU3Q,GAAOm9B,IAAI,gBAAkBnlD,EAAO,KACnD0C,KAAKi2B,QAAQ1kB,MAAM,kCAAoCjU,EAAO,UAAYm1D,EAAgB,oBACtFA,GAAiB,EACnB,MAAM,IAAI5yD,MAAM,wCAElBG,KAAK0yD,SAAWD,EAChBzyD,KAAK2yD,WAAa,GAClB3yD,KAAKqB,MAAQ/D,CACd,CAKM,WAAAs1D,CAAYpnD,GACbxL,KAAK6yD,QACPrnD,OAASrH,GAEAnE,KAAK8yD,UACdtnD,EAASxL,KAAK+yD,QAGhB/yD,KAAK2yD,WAAWzyD,KAAKsL,EACtB,CAKM,MAAAwnD,CAAO1lD,GAGZ,GAFAtN,KAAKi2B,QAAQ1kB,MAAM,cAAgBjE,EAAU,oBAAsBtN,KAAK0yD,SAAW,IACnF1yD,KAAK0yD,WACD1yD,KAAK0yD,SAAW,EAClB,MAAM,IAAI7yD,MAAM,0BAA4BG,KAAKqB,MAAQ,kBAAoBrB,KAAK0yD,UAGhF1yD,KAAK6yD,SACP7yD,KAAK2yD,WAAWvzD,SAASoM,IACvBA,OAASrH,EAAU,GAGxB,CAKM,KAAAmH,CAAMA,GACXtL,KAAK+yD,OAASznD,EACdtL,KAAK2yD,WAAWvzD,SAASu8B,IACvBA,EAAcrwB,EAAM,GAEvB,CAKM,KAAAunD,GACL,OAAI7yD,KAAK8yD,WAGgB,IAAlB9yD,KAAK0yD,QACb,CAKM,OAAAI,GACL,OAAQnP,GAAiB3jD,KAAK+yD,OAC/B,CAKM,QAAAE,GACL,OAAOjzD,KAAK+yD,MACb,QC5EUG,GAMX,WAAA32D,CAAY42D,GAJJnzD,KAAMozD,OAAyB,GAC/BpzD,KAAUqzD,WAAsD,GAItErzD,KAAKszD,YAAcH,CACpB,CAKM,MAAAI,CAAOjpB,GACZtqC,KAAKuL,IAAI,CAAC++B,GACX,CAKM,GAAA/+B,CAAIioD,GACTA,EAAMp0D,SAAS8M,IACblM,KAAK6O,QAAQ,IAAI8sC,GAAezvC,EAAS,IAAI4vC,GAAmBK,GAAgBI,QAAQ,GAE3F,CAKM,OAAA1tC,CAAQsJ,GAEb,MAAM9a,EAAU8a,EAAM9a,QAChBjB,EAAOiB,EAAQjB,KACfy/C,EAAS1jC,EAAM0jC,OASrB,GAAIz/C,IAAS+/C,GAAgBC,eACzB/+C,EAA6C6+C,UAAW,CAC1D,MAAM4E,EAAM9gD,KAAKozD,OAAOvX,EAAO57C,IAC3B6gD,IACDzjD,EAA6C6+C,UAAY4E,EAAIvuC,OAEjE,CAMGnW,IAAS+/C,GAAgBC,cAC1B/+C,EAA6C6+C,WAC7C7+C,EAA6C4+C,WAC7C5+C,EAA6C6+C,UAAUj9C,QACvD5B,EAA6C4+C,UAAUh9C,QACxD5B,EAAQjB,KAAO+/C,GAAgBM,SAKJ,oBAAlB/G,gBACLt5C,IAAS+/C,GAAgBS,8BAC3B58C,KAAKozD,OAAOvX,EAAO57C,KAClBD,KAAKozD,OAAOvX,EAAO57C,IAA8Bu7C,WAClDn+C,EAAQjB,KAAO+/C,GAAgBM,SAE7BrgD,IAAS+/C,GAAgBU,4BAC3B78C,KAAKozD,OAAOvX,EAAO57C,MACjBD,KAAKozD,OAAOvX,EAAO57C,IAA8Bu7C,WACnDn+C,EAAQjB,KAAO+/C,GAAgBM,UAOnC,MAAMgX,EAAiBzzD,KAAK0zD,2BAA2B7X,EAAQz/C,EAAMiB,GAErE,OADA2C,KAAK2zD,iBAAiBF,EAAgBp2D,GAC/Bo2D,CACR,CAKM,GAAAlhC,GACL,MAAM3uB,EAAS,GACf,IAAK,MAAM5G,KAAOgD,KAAKozD,OACrB,GAAIpzD,KAAKozD,OAAOzoD,eAAe3N,GAAM,CACnC,MAAMkP,EAAUlM,KAAKozD,OAAOp2D,GAC5B4G,EAAO1D,KAAKgM,EACb,CAEH,OAAOtI,CACR,CAOM,SAAAgwD,CAAUt2D,GAGf,IAAK,MAAMN,KAAOgD,KAAKozD,OACrB,GAAIp2D,IAAQM,EACV,OAAO0C,KAAKozD,OAAOp2D,EAIxB,CAOM,SAAA62D,CAAUv2D,GACf,OAAO,IAAIwI,SAAYC,IACrB,MAAM+tD,EAAsBjY,IACtBA,EAAO57C,KAAO3C,IAGlByI,EAAQ81C,GACR77C,KAAKsd,YAAYw2C,GAAmB,EAEtC9zD,KAAKg5B,UAAU86B,GAGf,MAAM1uD,EAASpF,KAAK4zD,UAAUt2D,GAC9B,GAAI8H,EAGF,OAFApF,KAAKsd,YAAYw2C,QACjB/tD,EAAQX,EAET,GAEJ,CAMM,SAAA4zB,CAAU7W,GAQf,OAPAniB,KAAKqzD,WAAWnzD,KAAKiiB,GAErBvlB,OAAOC,KAAKmD,KAAKozD,QAAQh0D,SAASpC,IAChC,MAAMkP,EAAUlM,KAAKozD,OAAOp2D,GAC5BmlB,EAAQjW,EAAS,IAAI4vC,GAAmBK,GAAgBI,MAAMv+C,YAAY,IAGrE,KACLgC,KAAKsd,YAAY6E,EAAQ,CAE5B,CAKM,WAAA7E,CAAY6E,GACjB,MAAMhW,EAAQnM,KAAKqzD,WAAWhgD,QAAQ8O,IACvB,IAAXhW,GACFnM,KAAKqzD,WAAW9lC,OAAOphB,EAAO,EAEjC,CAKO,gBAAAwnD,CAAiB9X,EAAWx+C,GAClC2C,KAAKqzD,WAAWj0D,SAAS20D,IACvB,IACEA,EAASlY,EAAQx+C,EAClB,CAAC,MAAOqH,GACP,MACD,IAEJ,CAKO,0BAAAgvD,CAA2B7X,EAAWz/C,EAAuBiB,GACnE,MAAM22D,EAAenY,EAGfoY,EACH73D,IAAS+/C,GAAgBC,cACxB4X,EAAYzhD,QACZyhD,EAAYzhD,OAAOtT,QAAU69C,GAAcG,WAC5C7gD,IAAS+/C,GAAgBC,cACxB/+C,GACAA,EAAQ4+C,WACR5+C,EAAQ4+C,UAAUh9C,QAAU69C,GAAcG,UAIxCiX,EAAgB93D,IAAS+/C,GAAgBO,OAG/C,GAFqBtgD,IAAS+/C,GAAgBK,cAAgD,IAA9BwX,EAAYvY,eAExDyY,GAAiBD,EAAmB,CAEtD,MAAME,EAAYn0D,KAAKozD,OAAOvX,EAAO57C,IAOrC,cANOD,KAAKozD,OAAOvX,EAAO57C,IAE1BD,KAAKszD,YAAYzX,GACbsY,GACFtY,EAAO/B,cAAcqa,GAEhBtY,CACR,CAAM,CACL,MAAM7+C,EAAM6+C,EAAO57C,GAEdD,KAAKozD,OAAOzoD,eAAe3N,GAI9BgD,KAAKozD,OAAOvX,EAAO57C,IAAI25C,QAAQiC,IAH/B77C,KAAKszD,YAAYzX,GACjB77C,KAAKozD,OAAOvX,EAAO57C,IAAM47C,EAI5B,CAED,OAAO77C,KAAKozD,OAAOvX,EAAO57C,GAC3B,EC5MW,MAAOm0D,GAiBnB,WAAWC,GACT,MAAmC,OAA5Br0D,KAAKg2B,QAAQwxB,UACrB,CAED,oBAAW+J,GACT,OAAOvxD,KAAKs0D,iBACb,CAED,oBAAW/C,CAAiBgD,GAC1B,MAAM,IAAI10D,MAAM,cACjB,CAED,WAAAtD,CAAYi4D,EAAwBC,EAAuBnZ,GAnBnDt7C,KAAAi2B,QAAkB3Q,GAAOm9B,IAAI,mBAC7BziD,KAAiBs0D,kBAAqB,GACtCt0D,KAAkB00D,mBAA+C,GACjE10D,KAAkB20D,mBAAiE,GACnF30D,KAA2B40D,4BAAoD,GAC/E50D,KAAe60D,gBAAY,GAejC70D,KAAKg2B,QAAUw+B,EACfx0D,KAAK80D,eAAiB,IAAI5B,IAA0CxuD,GAAM1E,KAAK+0D,YAAYrwD,KAC3F1E,KAAKg1D,aAAe,IAAI9B,IAAwCxuD,GAAM1E,KAAK+0D,YAAYrwD,KACvF1E,KAAKi1D,YAAc,IAAI/B,IAAsCxuD,GAAM1E,KAAK+0D,YAAYrwD,KACpF1E,KAAK+mD,SAAW,IAAImM,IAA4CxuD,GAAM1E,KAAK+0D,YAAYrwD,KAGvF1E,KAAKk1D,iBAAmB,IAAI1C,GAAY,wBAAyB,GACjExyD,KAAKm1D,mBAAqB,IAAI3C,GAAY,kCAAmC,GAUzEiC,GAMFz0D,KAAKo1D,aAAe,IAAI5C,GAAY,4BAA6B,GACjExyD,KAAKk1D,iBAAiBtC,aAAayC,IAC7BA,GACFr1D,KAAKo1D,aAAa9pD,MAAM+pD,GAG1Br1D,KAAKm1D,mBAAmBvC,aAAa7mD,IAE/BA,GACF/L,KAAKo1D,aAAa9pD,MAAMS,GAG1B/L,KAAKi2B,QAAQ1kB,MAAM,0BAEnBvR,KAAKoqD,iBACF58C,MAAM+vC,IAELv9C,KAAKs0D,kBAAkBp0D,KAAKq9C,GAC5Bv9C,KAAKo1D,aAAapC,OAAO,0CAA4CzV,EAAEt9C,GAAK,IAAI,IAEjFuC,OAAO8yD,IACNt1D,KAAKi2B,QAAQ1kB,MAAM,8BAAgC+jD,GACnDt1D,KAAKo1D,aAAapC,QAAQ,GAC1B,IAGNhzD,KAAKu1D,oBAAoB,KAI3Bv1D,KAAKo1D,aAAep1D,KAAKk1D,iBAG3Bl1D,KAAKg2B,QAAQ22B,sBAAsBjoD,IACjC1E,KAAKw1D,0BAA0B9wD,EAAE,IAEnC1E,KAAKg2B,QAAQ42B,sBAAsBloD,IACjC1E,KAAKy1D,0BAA0B/wD,EAAE,IAEnC1E,KAAKg2B,QAAQ62B,wCAAwCnoD,IACnD1E,KAAK01D,oCAAoChxD,EAAE,IAEzC42C,GACFA,EAAQ8V,0BAA0BpxD,KAAK21D,+BAA+B7/C,KAAK9V,OAI7EA,KAAKg2B,QAAQhyB,OAKbhE,KAAK41D,oBAUL51D,KAAKg2B,QACFyyB,YACAj7C,MAAMqoD,IACL71D,KAAK81D,iBAAiB,IAEvBtzD,OAAO8I,IAEND,QAAQgX,IAAI/W,EAAM,GAEvB,CAEM,KAAAuX,CAAMrX,GACX,MAAM0D,EAAU,IAAIpJ,SAAyB,CAACC,EAAS4H,KACrD3N,KAAKo1D,aAAaxC,aACf7mD,IACMA,EAGH4B,EAAO3N,KAAKo1D,aAAanC,YAFzBltD,EAAQ/F,KAGT,GACD,IAGN,OAAOg/C,GAAQl5C,QAAQof,IAAI,CAACllB,KAAKg2B,QAAQnT,QAAS3T,IAAU1B,MAAK,IAAMxN,OAAOwL,EAC/E,CAKM,gBAAAwgD,GACL,OAAOhsD,KAAK80D,eAAeviC,KAC5B,CAOM,eAAAmtB,CAAgBpiD,GACrB,OAAO0C,KAAK80D,eAAelB,UAAUt2D,EACtC,CAWM,oBAAAqrD,CACLC,EACAmN,EACAC,EACAxuD,EACApK,EACAoO,GAuEA,OAAOwzC,GAtES,IAAIl5C,SAAsB,CAACC,EAAS4H,KAGlD,GAAI2vC,GAAuBsL,GAEzB,YADAj7C,EAAO,kDAGT,IAAKiwC,GAAcgL,GAEjB,YADAj7C,EAAO,qCAKT,IAAK2vC,GADWt9C,KAAK0/C,gBAAgBkJ,IAGnC,YADAj7C,EAAO,kBAAoBi7C,EAAmB,oBAKhD,IAAIqN,EACJ,GAAItS,GAAiBoS,GAEnB,YADApoD,EAAO,0CAIPsoD,EADErY,GAAcmY,GACE,CAAE35D,KAAO25D,EAA4Bz4D,KAAM,GAAIm+C,eAAe,EAAOlvC,UAAW,CAAA,GAE/EwpD,EAIrB,MAAMG,EAAwC,GAC9C,IAAKvS,GAAiBqS,IAAsBlY,GAAakY,GAEvD,IAAK,MAAM7pD,KAAS6pD,EAAmB,CACrC,MAAM1rB,EAAO0rB,EAAkB7pD,GAC/B,GAAIyxC,GAActT,GAAO,CACvB,MAAM5qC,EAAa,CACjBtD,KAAOkuC,EACPhtC,KAAM,GACNm+C,eAAe,EACflvC,UAAW,CAAE,EACb4pD,WAAY,GACZC,kBAAmB,GACnBC,sBAAuB,CAAE,GAE3BH,EAAkBh2D,KAAKR,EACxB,MACCw2D,EAAkBh2D,KAAKoqC,EAE1B,CAIHtqC,KAAKg2B,QACF2yB,qBAAqBC,EACpBqN,EACAC,EACA1uD,EACApK,GACDoQ,MAAMu7C,IAEL/oD,KAAK+0D,YAAYhM,GACjBhjD,EAAQgjD,EAAa,IAEtBvmD,OAAO8I,IACNqC,EAAOrC,EAAM,GACb,IAGkBE,EACzB,CAMM,sBAAAy9C,CAAuB7sD,EAAcoP,GAU1C,OAAOwzC,GATS,IAAIl5C,SAAsB,CAACC,EAAS4H,KAElD,MAAMyxC,EAAUp/C,KAAK0/C,gBAAgBtjD,GACjCunD,GAAiBvE,GACnBzxC,EAAO,kBAAoBvR,EAAO,qBAGpC4D,KAAKg2B,QAAQizB,uBAAuB7sD,GAAMoR,MAAK,IAAMzH,EAAQq5C,IAAUzxC,EAAO,IAExDnC,EACzB,CAUM,QAAAuvC,CAASgO,EAAsB1rD,EAAkBmO,EAA+BywB,GAwBrF,OAAO+iB,GAvBS,IAAIl5C,SAAkB,CAACC,EAAS4H,KAG1Cg2C,GADY3jD,KAAK0/C,gBAAgBqJ,IAEnCp7C,EAAO,kBAAoBo7C,EAAe,qBAI5C/oD,KAAKg2B,QACFyzB,iBAAiBV,EAAc1rD,EAAS4+B,GACxCzuB,MAAM8oD,IAELt2D,KAAKi1D,YACFpB,UAAUyC,GACV9oD,MAAMszC,IACL/6C,EAAQ+6C,EAAI,IAEbt+C,OAAOuJ,GAAQ4B,EAAO5B,IAAK,IAE/BvJ,OAAOuJ,IACN4B,EAAO5B,EAAI,GACX,IAEkBP,EACzB,CAEM,2BAAA+qD,CAA4Bp0C,GACjCniB,KAAK80D,eAAe97B,WAAU,CAACw9B,EAAIn5D,KACjC8kB,EAAQq0C,EAAIn5D,EAAQjB,KAAK,GAE5B,CAKM,cAAA6vD,GACL,OAAOjsD,KAAKg1D,aAAaziC,KAC1B,CAOM,aAAAmxB,CAAcpmD,GACnB,OAAO0C,KAAKg1D,aAAapB,UAAUt2D,EACpC,CAYM,qBAAA6rD,CACLlO,EACAwb,EACAjrD,GAuBA,OAAOwzC,GAtBS,IAAIl5C,SAAa,CAACC,EAAS4H,KACzC,GAAI2vC,GAAuBrC,GACzBttC,EAAO,+BADT,CAKA,GAAI+oD,GAAczb,GAChBA,EAAaA,EAAW0b,eACnB,IAAK/Y,GAAc3C,GAExB,YADAttC,EAAO,iEAIT3N,KAAKg2B,QACFmzB,sBAAsBlO,EAAYwb,GAClCjpD,MAAM+mD,IACLxuD,EAAQwuD,EAAE,IAEX/xD,OAAOuJ,IACN4B,EAAO5B,EAAI,GAfd,CAgBG,IAEkBP,EACzB,CAQM,uBAAA89C,CAAwBrO,EAAoBzvC,GAqBjD,OAAOwzC,GApBS,IAAIl5C,SAAa,CAACC,EAAS4H,KACrC2vC,GAAuBrC,GACzBttC,EAAO,2BAIJiwC,GAAc3C,GAKnBj7C,KAAKg2B,QACFszB,wBAAwBrO,GACxBztC,MAAM+mD,IACLxuD,EAAQwuD,EAAE,IAEX/xD,OAAOuJ,IACN4B,EAAO5B,EAAI,IAVb4B,EAAO,gCAWL,IAEkBnC,EACzB,CAOM,aAAA0gD,CAAcnD,GACnB,IAAIjI,EAAM9gD,KAAKi1D,YAAY1iC,MAE3B,GADAuuB,EAAMA,EAAIz+C,QAAQtD,GAAMA,EAAEygD,YACrBuJ,EACH,OAAOjI,EAET,IAAI9tC,EAAa+1C,EACjB,GAAInL,GAAcmL,GAChB/1C,EAAQ,CAAC+1C,QACJ,GAAIA,aAAwBvO,GACjCxnC,EAAQ,CAAC+1C,EAAazrD,WACjB,KAAIyrD,aAAwBzqD,OAGjC,MAAM,IAAIuB,MAAM,2CAA6CkpD,GAG/D,OAAOjI,EAAIz+C,QAAQm0D,IACjB,MAAMp6D,EAAOo6D,EAAGp6D,KAChB,Of9YU,SAAQovB,EAAYorC,GAClC,IAAK,IAAIzqD,EAAQ,EAAGA,EAAQqf,EAAM9tB,OAAQyO,IACxC,GAAIyqD,EAAUprC,EAAMrf,GAAQA,GAC1B,OAAO,EAGX,OAAO,CACT,CeuYa0qD,CAAU7jD,GAAQ1D,GAChBlT,EAAK6D,KAAOqP,EAAErP,IACrB,GAEL,CAKM,eAAA2jD,CAAgB3jD,GACrB,OAAOD,KAAKi1D,YAAYrB,UAAU3zD,EACnC,CAQM,cAAAmqD,CAAeC,EAA2BpP,GA0E/C,OAzEgB,IAAIn1C,SAAwB,CAACC,EAAS4H,KAGpD,MAAM29C,EAAmBtrD,KAAKg2B,QAAQq1B,sBAOtC,GANI1H,GAAiB0G,KACnBA,EAAmBiB,EAAiBjB,kBAElC1G,GAAiB1I,KACnBA,EAAaqQ,EAAiBC,oBAE5BjO,GAAuBrC,GACzB,MAAM,IAAIp7C,MAAM,yCAGlB,MAAMyoB,EAAagjC,GAAoBA,EAAiBhjC,WAQxD,GAAIg1B,GAAuB+M,GACzBrqD,KAAKi2B,QAAQ1kB,MAAM,iCAAmC0pC,EAAa,YAAcqQ,EAAiBG,mBAAqB,YAAcH,EAAiBE,0BAA4B,KAElLxrD,KAAKg2B,QAAQs0B,eAAerP,EAAYqQ,EAAiBG,mBAAoBH,EAAiBE,2BAC3Fh+C,KAAKxN,KAAK+mD,SAAS8M,UAAU/9C,KAAK9V,KAAK+mD,WACvCv5C,MAAM+vC,GACDj1B,EACKtoB,KAAKi1D,YAAYpB,UAAUvrC,GAAY9a,MAAMqsB,GAAW0jB,IAExDA,IAGV/vC,MAAM+vC,IACLx3C,EAAQw3C,EAAE,IAEX/6C,OAAOuJ,IACN/L,KAAKi2B,QAAQ3qB,MAAMS,EAAI,QAGtB,CAEL/L,KAAKi2B,QAAQ1kB,MAAM,8BAAgC84C,EAAmB,eAAiBpP,EAAa,KAGpG,MAAMhgC,EAAgBjb,KAAK+mD,SAAS6M,UAAUvJ,GAC9C,IAAK/M,GAAuBriC,GAG1B,OAFAjb,KAAKi2B,QAAQ1kB,MAAM,mBAAqB84C,EAAmB,iDAC3DtkD,EAAQkV,GAKV,MAAM67C,EAAqB,CAAC/3D,EAAaw+C,EAAmB74C,KAC1D,GAAI2lD,IAAqB9M,EAAEt9C,IACrByE,IAAMy3C,GAAgBS,6BAA8B,CAElD+G,GADapG,EAAE/B,WAEjB7tC,EAAO,sBAET3N,KAAKi2B,QAAQzV,MAAM,4BAA8B6pC,EAAmB,KACpEtkD,EAAQw3C,GACRv9C,KAAK+2D,wBAAwBD,EAC9B,CACF,EAGH92D,KAAK2gD,sBAAsBmW,GAC3B92D,KAAKi2B,QAAQzV,MAAM,oCAAsC6pC,EAAmB,KAC5ErqD,KAAKg2B,QAAQo0B,eAAenP,EAAYoP,EACzC,IAGJ,CAOM,yBAAA2M,CAA0B70C,GAC/BniB,KAAKg1D,aAAah8B,WAAU,CAACi+B,EAAI55D,KAC/B8kB,EAAQ80C,EAAI55D,EAAQjB,KAAK,GAE5B,CAOM,uBAAAmkD,CAAwBp+B,GAC7B,OAAOniB,KAAKi1D,YAAYj8B,WAAU,CAAC8nB,EAAKzjD,KACtC,GAAIA,EAAQjB,OAAS+/C,GAAgBC,aAAc,CACjD,MAAM/mB,EAAKh4B,EACX8kB,EAAQ2+B,EAAKzrB,EAAE4mB,UAAW5mB,EAAE6mB,UAC7B,CAGD,GAAI7+C,EAAQjB,OAAS+/C,GAAgBK,SAClCn/C,EAAQjB,OAAS+/C,GAAgBC,cAC/B/+C,EAA6C4+C,UAAU/4C,aAAe45C,GAAcG,UACvF,IAAK,MAAM73C,KAAUpF,KAAK+mD,SAASx0B,MAC7BntB,EAAOo2C,UAAYp2C,EAAOo2C,SAASv7C,KAAO6gD,EAAI7gD,IAChDD,KAAK+mD,SAASl4C,QAAQ,IAAI8sC,GAA4Bv2C,EAAQ,IAAI02C,GAAmBK,GAAgBU,6BAG1G,GAEJ,CAOM,qBAAA8D,CAAsBx+B,GAC3B,MAAM+0C,EAAkB,CAAC9xD,EAAwB/H,KAC/C,IAAI0+C,EAAY1+C,EAAQjB,KACpB2/C,IAAcI,GAAgBI,QAEhCR,EAAY,UAEd55B,EAAQ/c,EAAOo2C,SAAUp2C,EAAQ22C,EAAU,EAG7C,OADA/7C,KAAK60D,gBAAgB30D,KAAK,CAACiiB,EAAS+0C,IAC7Bl3D,KAAK+mD,SAAS/tB,UAAUk+B,EAChC,CAEM,uBAAAH,CAAwB50C,GAC7B,MAAMg1C,EAAQn3D,KAAK60D,gBAAgBp7C,MAAM2R,GAASA,EAAK,KAAOjJ,IAC1Dg1C,IACFn3D,KAAK60D,gBAAgBtnC,OAAOvtB,KAAK60D,gBAAgBxhD,QAAQ8jD,GAAQ,GACjEn3D,KAAK+mD,SAASzpC,YAAY65C,EAAM,IAEnC,CAUM,YAAAzb,CAAaF,EAAoB4b,EAA4D5rD,GAoElG,OAAOwzC,GAnES,IAAIl5C,SAAwB,CAACC,EAAS4H,KAKpD,IAAIm7C,EAuBAuO,EAtBJ,GALI/Z,GAAuB8Z,IACzBzpD,EAAO,2BAILiwC,GAAcwZ,GAChBtO,EAAmB,CAAE1sD,KAAOg7D,EAAsC95D,KAAM,GAAIm+C,eAAe,EAAOlvC,UAAW,CAAA,QACxG,GAAI6qD,aAAqCjc,GAC9C2N,EAAmB,CACjB1sD,KAAOg7D,EAAkCh7D,MAAQg7D,EAA0Bn3D,GAC3E3C,KAAM85D,EAA0B95D,MAAS85D,EAAkCh7D,MAAQg7D,EAA0Bn3D,GAC7Gw7C,eAAe,OAEZ,CAEL,MAAM6b,EAAwB,CAAC,OAEzBC,EAAyC,CAAA,EAE/C36D,OAAOC,KAAKu6D,GAA2Bh4D,SAASpC,KACZ,IAA9Bs6D,EAAYjkD,QAAQrW,KACtBu6D,EAAkCv6D,GAAOo6D,EAA0Bp6D,GACpE,IAEH8rD,EAAmByO,CACpB,CAGD,IAAKja,GAAuBwL,EAAiBqN,YAE3C,GADAkB,EAAmBvO,EAAiBqN,WACJ,iBAArBkB,EAA+B,CACxC,MAAM/b,EAAUt7C,KAAKu7C,WAAW,CAAEn/C,KAAMi7D,KACnC/Z,GAAuBhC,IAAYA,EAAQ59C,OAAS,IACvDorD,EAAiBqN,WAAa7a,EAAQ,GAAGr7C,GAE5C,MAAM,GAAKq9C,GAAuB+Z,EAAiBj7D,MAKxCkhD,GAAuB+Z,EAAiBr/C,YAClD8wC,EAAiBqN,WAAakB,EAAiBr/C,cANU,CACzD,MAAMsjC,EAAUt7C,KAAKu7C,WAAW,CAAEn/C,KAAMi7D,EAAiBj7D,QACpDkhD,GAAuBhC,IAAYA,EAAQ59C,OAAS,IACvDorD,EAAiBqN,WAAa7a,EAAQ,GAAGr7C,GAE5C,CAKHD,KAAKg2B,QAAQ0lB,aAAaF,GAAYA,EAASv7C,GAAI6oD,GAChDt7C,MAAMgqD,IAELx3D,KAAKi2B,QAAQ1kB,MAAM,qDAAuDimD,GAC1E,MAAMr1C,EAAU,CAAC/c,EAAwB/H,KAEnC+H,EAAOnF,KAAOu3D,GAAShc,IAAYp2C,EAAOo2C,WAC5Cx7C,KAAKi2B,QAAQ1kB,MAAM,6BAA+BimD,GAClDzxD,EAAQX,GACRpF,KAAK+mD,SAASzpC,YAAY6E,GAC3B,EAIHniB,KAAK+mD,SAAS/tB,UAAU7W,EAAQ,IAEjC3f,OAAOuJ,IACN4B,EAAO5B,EAAI,GACX,IAGkBP,EACzB,CAUM,oBAAAs0C,CAAqBtE,EAAoBic,EAAoDzjD,EAAkBxI,GAkDpH,OAAOwzC,GAjDS,IAAIl5C,SAA0B,CAACC,EAAS4H,KAClD2vC,GAAuB9B,IACzB7tC,EAAO,yBAEL2vC,GAAuBma,IACzB9pD,EAAO,oCAGJrP,MAAMC,QAAQk5D,IACjB9pD,EAAO,0CAEL2vC,GAAuBtpC,KACzBA,EAAU,KAGZ,MAAMo4C,EAAwC,GAC9CqL,EAAoBr4D,SAAS8M,IAC3B,IAAI48C,EAWAuO,EACJ,GAVEvO,EADElL,GAAc1xC,GACG,CAAE9P,KAAO8P,EAAoB5O,KAAM,GAAIm+C,eAAe,EAAOlvC,UAAW,CAAA,GAEvEL,EAItB48C,EAAiB4O,eAAgB,EACjC5O,EAAiB90C,QAAUA,GAGtBspC,GAAuBwL,EAAiBqN,YAG3C,GADAkB,EAAmBvO,EAAiBqN,WAC/B7Y,GAAuB+Z,EAAiBj7D,OAEtC,IAAKkhD,GAAuB+Z,EAAiBr/C,UAAW,CAC7D,MAAMsjC,EAAUt7C,KAAKu7C,WAAW,CAAEt7C,GAAIo3D,EAAiBr/C,YAClDslC,GAAuBhC,IAAYA,EAAQ59C,OAAS,IACvDorD,EAAiBqN,WAAa7a,EAAQ,GAAGl/C,KAAKkB,KAEjD,OANCwrD,EAAiBqN,WAAakB,EAAiBj7D,KAQnDgwD,EAAkBlsD,KAAK4oD,EAAiB,IAG1C,MAAM6O,EAAmC,GACzCvL,EAAkBhtD,SAAS2qD,GAAO4N,EAAMz3D,KAAKF,KAAK07C,aAAaF,EAAUuO,MAEzEjkD,QAAQof,IAAIyyC,GAAOnqD,KAAKzH,GAASvD,MAAMmL,EAAO,IAExBnC,EACzB,CAUM,mBAAAq0C,CAAoBrE,EAAoBp2C,EAAwBoG,GACrE,MAAMyjD,EAAWjvD,KAAKg2B,QAAQi1B,aAAazP,EAASv7C,GAAImF,EAAOnF,IAC5DuN,MAAK,IAAMpI,IAEd,OADA45C,GAAQiQ,EAAUzjD,GACXyjD,CACR,CAUM,uBAAAjP,CAAwBxE,EAAoBp2C,EAAwBoG,GACzE,MAAMyjD,EAAWjvD,KAAKg2B,QAAQ+1B,cAAcvQ,EAASv7C,GAAImF,EAAOnF,IAC7DuN,MAAK,IAAMpI,IAEd,OADA45C,GAAQiQ,EAAUzjD,GACXyjD,CACR,CASM,kBAAA9O,CAAmB3E,EAAoBn+C,EAAiBmO,GAmB7D,OAAOwzC,GAlBS,IAAIl5C,SAAkB,CAACC,EAAS4H,KAC1C2vC,GAAuB9B,IACzB7tC,EAAO,4BAMT3N,KAAKg2B,QACFqqB,sBAAsB7E,EAAUn+C,GAAS,GACzCmQ,MAAMqsB,IACL9zB,EAAQy1C,EAAS,IAElBh5C,OAAOuJ,IACN4B,EAAO5B,EAAI,GACX,IAGkBP,EACzB,CAWM,qBAAA60C,CAAsB7E,EAAoBn+C,EAAcmO,GA2B7D,OAAOwzC,GA1BS,IAAIl5C,SAAkB,CAACC,EAAS4H,KAC1C2vC,GAAuB9B,IACzB7tC,EAAO,4BAGT,MAAMw8C,EAAc,GACpB,IAAK,MAAMntD,KAAOK,EACZA,EAAQsN,eAAe3N,IAAyB,OAAjBK,EAAQL,IACzCmtD,EAAYjqD,KAAKlD,GAGrB,IAAK,MAAM46D,KAAczN,SAChB9sD,EAAQu6D,GAGjB53D,KAAKg2B,QACFqqB,sBAAsB7E,EAAUn+C,GAAS,EAAO8sD,GAChD38C,MAAMqsB,IAEL9zB,EAAQy1C,EAAS,IAElBh5C,OAAOuJ,IACN4B,EAAO5B,EAAI,GACX,IAGkBP,EACzB,CASM,+BAAAq1C,CAAgC1+B,GACrCniB,KAAKi1D,YAAYj8B,WAAU,CAAC8nB,EAAKzjD,KAC/B,GAAIA,EAAQjB,OAAS+/C,GAAgBG,sBAAuB,CAC1D,MAAM8D,EAAgB/iD,EACtB8kB,EAAQ2+B,EAAKV,EAAc/iD,QAAS+iD,EAAcxrB,QAASwrB,EAAcvrB,QAC1E,IAEJ,CAMM,YAAAksB,CAAavF,EAAoBhwC,GAEtC,OAAOwzC,GADSh/C,KAAKg2B,QAAQ+qB,aAAavF,GAClBhwC,EACzB,CAOM,UAAA+vC,CAAWl5C,GAChB,GAAIshD,GAAiBthD,GACnB,OAAOrC,KAAK+mD,SAASx0B,MAGvB,IAAKoxB,GAAiBthD,EAAOpC,IAC3B,MAAO,CAACD,KAAK+mD,SAAS6M,UAAUvxD,EAAOpC,KAKzC,OAFmBD,KAAK+mD,SAASx0B,MAEflwB,QAAQk7C,IAExB,IAAKoG,GAAiBthD,EAAOjG,OAASmhD,EAAEnhD,KAAK6D,KAAOoC,EAAOjG,KACzD,OAAO,EAGT,IAAKunD,GAAiBthD,EAAO/E,OAASigD,EAAEjgD,OAAS+E,EAAO/E,KACtD,OAAO,EAGT,IAAKqmD,GAAiBthD,EAAOimB,YAAa,CACxC,GAAIg1B,GAAuBC,EAAE/B,UAC3B,OAAO,EAGT,GAAI+B,EAAE/B,SAASv7C,KAAOoC,EAAOimB,WAC3B,OAAO,CAEV,CAED,OAAO,CAAI,GAEd,CAEM,eAAAm7B,CAAgBxjD,GACrB,OAAOD,KAAKg2B,QAAQytB,gBAAgBxjD,EACrC,CAEM,eAAAqkD,CAAgBrkD,EAAYokD,EAAsB74C,GAOvD,OAAOwzC,GANS,IAAIl5C,SAAc,CAACC,EAAS4H,KAC1C3N,KAAKg2B,QAAQsuB,gBAAgBrkD,EAAIokD,GAC9B72C,MAAK,IAAMzH,MACXvD,OAAOuJ,GAAQ4B,EAAO5B,IAAK,IAGRP,EACzB,CAEM,WAAA+4C,CAAYtkD,GACjB,OAAOD,KAAKg2B,QAAQuuB,YAAYtkD,EACjC,CAEM,cAAAkkD,CAAelkD,EAAYikD,GAChC,OAAOlkD,KAAKg2B,QAAQmuB,eAAelkD,EAAIikD,EACxC,CAEM,mBAAAF,CAAoB/jD,EAAYosD,GACrC,OAAOrsD,KAAKg2B,QAAQguB,oBAAoB/jD,EAAIosD,EAC7C,CAEM,KAAA5yB,CAAM+hB,EAAoB+Q,EAA4B/gD,GAkB3D,OAAOwzC,GAjBS,IAAIl5C,SAAa,CAACC,EAAS4H,KACpC6tC,GACH7tC,EAAO,4BAGT3N,KAAKg2B,QAAQs2B,cAAc9Q,EAASv7C,GAAIssD,GACrC/+C,MAAM8a,IACLtoB,KAAKi1D,YACFpB,UAAUvrC,GACV9a,MAAMszC,IACL/6C,EAAQ+6C,EAAI,IAEbt+C,OAAOuJ,GAAQ4B,EAAO5B,IAAK,IAE/BvJ,OAAOuJ,GAAQ4B,EAAO5B,IAAK,IAGRP,EACzB,CAEM,gBAAAy1C,CAAiBjmC,EAAcggB,EAAY3d,EAAc7R,GAE9D6R,EAAMA,GAAO,GAkCb,OAAO2hC,GAhCS,IAAIl5C,SAAoC,CAACC,EAAS4H,KAGhE,IADqB3N,KAAKi1D,YAAYrB,UAAU54C,GAG9C,YADArN,EAAO,iCAAmCqN,GAK5C,GADmBhb,KAAKi1D,YAAYrB,UAAU54B,GAM9C,OAAOh7B,KAAKg2B,QAAQirB,iBAAiBjmC,EAAMggB,EAAI3d,GAC5C7P,MAAMe,IACL,MAAM6yC,EAAW7yC,EAAKysB,GAChB/7B,EAAQsP,EAAKqwC,WACb+C,EAAYpzC,EAAKspD,YAEvB73D,KAAKi1D,YAAYpB,UAAUzS,GAAU5zC,MAAMszC,IACzCA,EAAIY,mBAAmBC,GACvB,MAAMmW,EAAehX,EAAIe,SAASx/C,QAAQ01D,GAAMA,EAAEvZ,UAAYv/C,EAAMu/C,UAAS,GAE7Ez4C,EAAQ+xD,EAAa,GACrB,IAEHt1D,OAAOuJ,IACN4B,EAAO5B,EAAI,IAlBb4B,EAAO,iCAAmCqtB,EAmBxC,IAGkBxvB,EACzB,CAEM,gBAAAqzC,CACLv2B,EACAs2B,EACApzC,GA2BA,OAAOwzC,GA1BS,IAAIl5C,SAAkB,CAACC,EAAS4H,IACvC3N,KAAKg2B,QAAQ6oB,iBAAiBv2B,EAAYs2B,GAC9CpxC,MAAkB,KAMjBxN,KAAKi1D,YACFpB,UALsB1vD,WAMtBqJ,MAAM+kD,IACLA,EAAO7Q,mBALcv9C,WAOrBnE,KAAKi1D,YACFpB,UATkB1vD,WAUlBqJ,MAAMg0C,IACLz7C,EAAQy7C,EAAO,GACf,IAELh/C,OAAOuJ,GAAQ4B,EAAO5B,IAAK,IAE/BvJ,OAAOuJ,IACN4B,EAAO5B,EAAI,MAIOP,EACzB,CAEM,2BAAA21C,CAA4B31C,GACjCxL,KAAK00D,mBAAmBx0D,KAAKsL,EAC9B,CAEM,2BAAA+1C,CAA4B/1C,GACjCxL,KAAK20D,mBAAmBz0D,KAAKsL,EAC9B,CAEM,kCAAAwsD,CAAmCxsD,GACxCxL,KAAK40D,4BAA4B10D,KAAKsL,EACvC,CAGO,WAAAupD,CAAYlZ,GAClBA,EAAOb,SAAWh7C,IACnB,CAEO,eAAA81D,GACN91D,KAAKi2B,QAAQ1kB,MAAM,2BAMnBvR,KAAKg2B,QAAQg2B,mBACVx+C,MAAMgpD,IACLx2D,KAAK80D,eAAevpD,IAAIirD,GACxBx2D,KAAKk1D,iBAAiBlC,OAAO,gBAAgB,IAE9CxwD,OAAO8I,IACNtL,KAAKi2B,QAAQ3qB,MAAMA,GACnBtL,KAAKk1D,iBAAiB5pD,MAAM,sEAAwEA,EAAM,IAG9GtL,KAAKg2B,QAAQi2B,iBACVz+C,MAAMypD,IACLj3D,KAAKg1D,aAAazpD,IAAI0rD,GACtBj3D,KAAKk1D,iBAAiBlC,OAAO,mBAAmB,IAEjDxwD,OAAO8I,IACNtL,KAAKi2B,QAAQ3qB,MAAMA,GACnBtL,KAAKk1D,iBAAiB5pD,MAAM,oEAAsEA,EAAM,IAG5GtL,KAAKg2B,QAAQk2B,gBACV1+C,MAAMyqD,IACLj4D,KAAKi1D,YAAY1pD,IAAI0sD,GACrBj4D,KAAKk1D,iBAAiBlC,OAAO,iBAAiB,IAE/CxwD,OAAO8I,IACNtL,KAAKi2B,QAAQ3qB,MAAMA,GACnBtL,KAAKk1D,iBAAiB5pD,MAAM,0EAA4EA,EAAM,IAGlHtL,KAAKg2B,QAAQm2B,qBACV3+C,MAAMqoD,IACL71D,KAAK+mD,SAASx7C,IAAIsqD,GAClB71D,KAAKk1D,iBAAiBlC,OAAO,cAAc,IAE5CxwD,OAAO8I,IACNtL,KAAKi2B,QAAQ3qB,MAAMA,GACnBtL,KAAKk1D,iBAAiB5pD,MAAM,wEAA0EA,EAAM,GAEjH,CAEO,iBAAAsqD,GACN51D,KAAKi2B,QAAQ1kB,MAAM,yBAMnBvR,KAAKg2B,QAAQ0yB,4BAA4BvwC,IACvCnY,KAAK80D,eAAejmD,QAAQsJ,EAAM,IAGpCnY,KAAKg2B,QAAQkzB,0BAA0B/wC,IACrCnY,KAAKg1D,aAAanmD,QAAQsJ,EAAM,IAGlCnY,KAAKg2B,QAAQ20B,wBAAwBxyC,IACnCnY,KAAK+mD,SAASl4C,QAAQsJ,EAAM,IAG9BnY,KAAKg2B,QAAQwzB,wBAAwBrxC,IACnCnY,KAAKi1D,YAAYpmD,QAAQsJ,EAAM,GAElC,CAEO,yBAAAq9C,CAA0BjnD,GAEhC,MAAM6yC,EAAW7yC,EAAKysB,GAChB4jB,EAAarwC,EAAKqwC,WAClBiZ,EAActpD,EAAKspD,YAEzB73D,KAAKi1D,YAAYpB,UAAUzS,GAAU5zC,MAAMszC,IACzCA,EAAIY,mBAAmBmW,GACvB,MAAMK,EAA4BpX,EAAIe,SAASx/C,QAAQ01D,GAAMA,EAAEvZ,UAAYI,EAAWJ,UAAS,GAE/Fx+C,KAAK00D,mBAAmBt1D,SAASoM,IAC/B,IACEA,EAASs1C,EAAKoX,EACf,CAAC,MAAOnsD,GACP,MACD,IACD,GAGL,CAEO,yBAAA0pD,CAA0BlnD,GAChC,MAAM8yC,EAAW9yC,EAAK4pD,cAChB/W,EAAW7yC,EAAK6pD,cAChBP,EAActpD,EAAKspD,YACnBjZ,EAAarwC,EAAKqwC,WAExB5+C,KAAKi1D,YAAYpB,UAAUxS,GAAU7zC,MAAM+kD,IAEzCA,EAAO7Q,mBAAmBmW,GAE1B73D,KAAKi1D,YAAYpB,UAAUzS,GAAU5zC,MAAMg0C,IAEzCxhD,KAAK20D,mBAAmBv1D,SAASoM,IAC/B,IACEA,EAASg2C,EAAQ+Q,EAAQ3T,EAC1B,CAAC,MAAO7yC,GACP,MACD,IACD,GACF,GAEL,CAEO,mCAAA2pD,CAAoCnnD,GAC1C,MAAMtO,EAAKsO,EAAKtO,GACV43D,EAActpD,EAAKspD,YAEnB/W,EAAM9gD,KAAKi1D,YAAYrB,UAAU3zD,GACnC6gD,GACFA,EAAIY,mBAAmBmW,EAE1B,CAEO,kBAAAtC,GACNv1D,KAAKg2B,QAAQ82B,yBACVt/C,MAAMpG,IAGDA,GACFxK,OAAOC,KAAKuK,GAAKhI,SAASpC,IACxB,MAAMs5D,EAAQt5D,EACR66D,EAAczwD,EAAIpK,GAElB8jD,EAAM9gD,KAAKi1D,YAAYrB,UAAU0C,GACnCxV,GACFA,EAAIY,mBAAmBmW,EACxB,IAIL73D,KAAKm1D,mBAAmBnC,OAAO,+BAA+B,IAE/DxwD,OAAOuJ,IACN/L,KAAKm1D,mBAAmB7pD,MAAM,+BAAiCS,EAAI,GAExE,CAEO,8BAAA4pD,CAA+BzX,GACrC,IAAKA,EAAI51B,WACP,OAGF,MAAMw4B,EAAM9gD,KAAKi1D,YAAYrB,UAAU1V,EAAI51B,YACtCw4B,GAKAA,EAAInB,OAILmB,EAAInB,MAAMsC,iBAAiBhiD,KAAOi+C,EAAIj+C,IAI1CD,KAAK40D,4BAA4Bx1D,SAASoM,IACxC,IACEA,EAASs1C,EAAK5C,EAAIQ,WACnB,CAAC,MAAOh6C,GACP,MACD,IAEJ,QCjrCU2zD,GAcX,WAAA97D,CAAY8hD,EAA0B+J,GACpCpoD,KAAK8wD,GAAKzS,EACVr+C,KAAKs4D,IAAMlQ,EAEXpoD,KAAKu4D,cAAgB,CACnBhmC,IAAKvyB,KAAKw4D,yBAAyB1iD,KAAK9V,MACxC4lC,SAAU5lC,KAAK8wD,GAAGnI,qBAAqB7yC,KAAK9V,KAAK8wD,IACjDjtB,WAAY7jC,KAAK8wD,GAAG7H,uBAAuBnzC,KAAK9V,KAAK8wD,IACrD93B,UAAWh5B,KAAK8wD,GAAGyF,4BAA4BzgD,KAAK9V,KAAK8wD,IACzDxzC,iBAAanZ,EACb42C,SAAU/6C,KAAK8wD,GAAG/V,SAASjlC,KAAK9V,KAAK8wD,KAGvC9wD,KAAK+/C,YAAc,CACjBxtB,IAAKvyB,KAAKy4D,uBAAuB3iD,KAAK9V,MACtC04D,gBAAiB14D,KAAK8wD,GAAG3H,sBAAsBrzC,KAAK9V,KAAK8wD,IACzD6H,kBAAmB34D,KAAK8wD,GAAGxH,wBAAwBxzC,KAAK9V,KAAK8wD,IAC7D93B,UAAWh5B,KAAK8wD,GAAGkG,0BAA0BlhD,KAAK9V,KAAK8wD,IACvDxzC,iBAAanZ,GAGfnE,KAAKs7C,QAAU,CACb/oB,IAAKvyB,KAAK8wD,GAAGvV,WAAWzlC,KAAK9V,KAAK8wD,IAClC93B,UAAWh5B,KAAK8wD,GAAGnQ,sBAAsB7qC,KAAK9V,KAAK8wD,IACnD8H,SAAU54D,KAAK8wD,GAAG1G,eAAet0C,KAAK9V,KAAK8wD,IAC3CxzC,iBAAanZ,EACbkpB,OAAQrtB,KAAK8wD,GAAGpV,aAAa5lC,KAAK9V,KAAK8wD,KAGzC9wD,KAAK64D,UAAY,CACftmC,IAAKvyB,KAAK8wD,GAAG5E,cAAcp2C,KAAK9V,KAAK8wD,IACrC93B,UAAWh5B,KAAK8wD,GAAGvQ,wBAAwBzqC,KAAK9V,KAAK8wD,IACrDxzC,iBAAanZ,EAEhB,CAEM,UAAA20D,CAAWttD,GAChBxL,KAAK8wD,GAAG3P,4BAA4B31C,EACrC,CAEM,UAAA81C,CAAW91C,GAChBxL,KAAK8wD,GAAGvP,4BAA4B/1C,EACrC,CAEM,2BAAAutD,CAA4BvtD,GACjCxL,KAAK8wD,GAAGkH,mCAAmCxsD,EAC5C,CAEO,wBAAAgtD,CAAyBl7D,GAC/B,OAAIqmD,GAAiBrmD,GACZ0C,KAAK8wD,GAAG9E,mBAEVhsD,KAAK8wD,GAAGpR,gBAAgBpiD,EAChC,CAEO,sBAAAm7D,CAAuBn7D,GAC7B,OAAIqmD,GAAiBrmD,GACZ0C,KAAK8wD,GAAG7E,iBAEVjsD,KAAK8wD,GAAGpN,cAAcpmD,EAC9B,QCtEU07D,GAYX,WAAAz8D,CAAY8hD,EAA0B+J,GACpCpoD,KAAKi5D,KAAO5a,EACZr+C,KAAKs4D,IAAMlQ,EACXpoD,KAAKklB,IAAM,IAAImzC,GAAsBha,EAAS+J,EAC/C,CAQM,KAAAvlC,CAAMrX,GAUX,OAAOwzC,GATS,IAAIl5C,SAAa,CAACC,EAAS4H,KACzC3N,KAAKi5D,KAAKp2C,QACPrV,MAAK,KACJzH,EAAQ/F,KAAK,IAEdwC,OAAOuJ,IACN4B,EAAO5B,EAAI,GACX,IAEkBP,EACzB,CAOD,MAAW48C,GACT,OAAOpoD,KAAKs4D,GACb,CASD,SAAWY,GACT,YAA2B/0D,IAApBnE,KAAKs4D,IAAIlzD,MACjB,CAOD,cAAW+zD,GACT,OAAOn5D,KAAKk5D,YAA+B/0D,IAAtBnE,KAAKs4D,IAAI9c,QAC/B,CAWD,OAAWnD,GACT,GAAKr4C,KAAKk5D,MAIV,OAAKl5D,KAAKm5D,WAKHn5D,KAAKs4D,IAAI9c,SAASnD,IAHhB,IAAI6E,GAAY,KAI1B,CAOM,uBAAAkc,GAEL,MAAO,EACR,QCtDUC,GACF,oCAAOC,CAA8B/xD,GACxC,OAAsC,IAA/BA,EAAWwW,eACrB,CAOD,OAAI9X,GACA,OAAOjG,KAAKu5D,IACf,CAED,OAAItzD,CAAI3J,GACJ0D,KAAKu5D,KAAOj9D,CACf,CAED,WAAAC,CAAYiL,GACR,IAAKA,EACD,MAAM,IAAI3H,MAAM,0BAapB,IAAI20D,EAIJ,GAbK7Q,GAAiBn8C,EAAOgyD,YACzBl0C,GAAOu9B,MAAQr7C,EAAOgyD,UAGrBlc,GAAuB91C,EAAO0F,UAC/BoY,GAAOq9B,WAAan7C,EAAO0F,QAK/BlN,KAAKy5D,yBAAqD,IAA1BjyD,EAAOkyD,eACvC15D,KAAK25D,0BAA4BN,GAAeC,8BAA8B9xD,EAAOD,YAEjFvH,KAAKy5D,yBACL,MAAM,IAAI55D,MAAM,qBACb,IAAIG,KAAK25D,0BAGZ,MAAM,IAAI95D,MAAM,wDAGpB,GALI20D,EAAS,IAAI9O,GAAUl+C,IAKtBgtD,EACD,MAAM,IAAI30D,MAAM,iEAGpBq9C,GAAYG,IAAM71C,EAAO6wC,IACzB,MAAMuhB,EAAkB,IAAIxF,GAAgBI,GAAShtD,EAAOqyD,oBAAqBryD,EAAO8zC,SAClF8M,EAAK,IAAI0R,GAAGF,EAAiBpyD,EAAO8zC,SAC1Ct7C,KAAKu5D,KAAO,IAAIP,GAAYY,EAAiBxR,GAC7CpoD,KAAK+5D,cAAgBH,EAAgB/2C,QAAQrV,MAAMqsB,GAAM75B,MAC5D,CAED,2BAAWg6D,GACP,OAAOh6D,KAAKy5D,wBACf,CAED,4BAAWQ,GACP,OAAOj6D,KAAK25D,yBACf,CAEM,KAAA92C,CAAMrX,GACT,OAAOwzC,GAAQh/C,KAAK+5D,cAAevuD,EACtC,ECxIE,MAcM0uD,GAAqC,mCACrCC,GAAiB,eAQjBC,GAAoB,kBAEpBC,GAA4B,+HCxBzC,SAASxvD,GAAe9G,GACpB,GAAIA,GAAWA,EAAQ+G,eACiB,mBAA1B/G,EAAQ+G,eACW,QAA1B/G,EAAQ+G,eACkB,WAA1B/G,EAAQ+G,eACkB,UAA1B/G,EAAQ+G,cACX,MAAM,IAAIjL,MAAM,mIAA2IkE,EAAQ+G,cAAgB,eAEvL,IAAIC,EAAoBhH,GAA4C,mBAA1BA,EAAQ+G,eAAgC/G,EAAQ+G,cACtFE,EAAY,CAAA,EAqEhB,SAASC,EAAaC,EAAmBlO,GACrC,IAAImO,EAAWD,aAA6BrL,MAAQqL,EAAoB,IAAIrL,MAAMqL,GAClF,GAAIH,EACAA,EAAkBI,OADtB,CAIA,IAAIhM,EAAM,qDAAwDnC,EAAM,aAAgBmO,EAASC,MACjG,GAAIrH,EACA,OAAQA,EAAQ+G,eACZ,IAAK,MACD,OAAOO,QAAQC,MAAMnM,GACzB,IAAK,SACD,OACJ,IAAK,QACD,MAAM,IAAIU,MAAMV,GAG5BkM,QAAQC,MAAMnM,EAZb,CAaJ,CAWD,MAAO,CACHoM,IAlGJ,SAAavO,EAAKwO,EAAUC,GACxB,IAAIC,EAAkBV,EAAUhO,GA0BhC,OAzBK0O,IACDA,EAAkB,GAClBV,EAAUhO,GAAO0O,GAErBA,EAAgBxL,KAAKsL,GACjBC,GACAnF,YAAW,WACPmF,EAAmBrM,SAAQ,SAAUuM,GACjC,IAAIC,EACJ,GAA8B,QAAzBA,EAAKZ,EAAUhO,UAAyB,IAAP4O,OAAgB,EAASA,EAAGC,SAASL,GACvE,IACQlN,MAAMC,QAAQoN,GACdH,EAASM,WAAM3H,EAAWwH,GAG1BH,EAASM,WAAM3H,EAAW,CAACwH,GAElC,CACD,MAAOI,GACHd,EAAac,EAAK/O,EACrB,CAEzB,GACa,GAAE,GAEA,WACH,IAAIgP,EAAYhB,EAAUhO,GACrBgP,IASoB,KANzBA,EAAYA,EAAUlP,QAAO,SAAUmP,EAAKC,EAASC,GAIjD,OAHMD,IAAYV,GAAYS,EAAIvO,SAAWyO,GACzCF,EAAI/L,KAAKgM,GAEND,CACV,GAAE,KACWvO,cACHsN,EAAUhO,GAGjBgO,EAAUhO,GAAOgP,EAEjC,CACK,EAsDGI,QArDJ,SAAiBpP,GAEb,IADA,IAAIqP,EAAe,GACVC,EAAK,EAAGA,EAAKC,UAAU7O,OAAQ4O,IACpCD,EAAaC,EAAK,GAAKC,UAAUD,GAErC,IAAIZ,EAAkBV,EAAUhO,GAChC,IAAK0O,GAA8C,IAA3BA,EAAgBhO,OACpC,MAAO,GAEX,IAAI8O,EAAU,GAWd,OAVAd,EAAgBtM,SAAQ,SAAUoM,GAC9B,IACI,IAAI5H,EAAS4H,EAASM,WAAM3H,EAAWkI,GACvCG,EAAQtM,KAAK0D,EAChB,CACD,MAAOmI,GACHS,EAAQtM,UAAKiE,GACb8G,EAAac,EAAK/O,EACrB,CACb,IACewP,CACV,EAiCGC,MAbJ,WACIzB,EAAY,CAAA,CACf,EAYG0B,SAXJ,SAAkB1P,GACQgO,EAAUhO,WAIzBgO,EAAUhO,EACpB,EAOL,CAEA6N,GAAe8B,QAAU9B,aACRA,ICnHX,SAAUyvD,GAAarhD,GACzB,OAAKA,EAGErc,OAAOC,KAAKoc,GAAQ7R,KAAKpK,GAAQic,EAAOjc,KAFpC,EAGf,CAEM,SAAUu9D,GAAYxlC,GACxB,IAAInxB,EACJ,IACIA,EAASiD,KAAKwc,MAAMxc,KAAKC,UAAUiuB,GAAO,CAAE,GAC/C,CAAC,MAAOzpB,GACL1H,EAAS,CAAA,CACZ,CAED,OAAOA,CACX,CAEgB,SAAA42D,GAAYhvD,EAA4BywB,GACpD,GAAIA,EAAcw+B,aACU,mBAAbjvD,EACP,MAAM,IAAI3L,MAAM,6CAG5B,CClBc,MAAO66D,GAOjB,WAAAn+D,CAAoBo+D,EAAqCt5D,EAAuBo+C,EAA4Cmb,GAAxG56D,KAAW26D,YAAXA,EAAqC36D,KAAKqB,MAALA,EAAuBrB,KAAIy/C,KAAJA,EAA4Cz/C,KAAc46D,eAAdA,EALpH56D,KAAS0Q,UAAqB9D,KAUlC+tD,EAAYE,mBAAmB7xD,IACvBA,EAASqJ,aAAerJ,EAASqJ,YAAY/U,OAAS0C,KAAKqB,OAI/DrB,KAAK0Q,UAAUtE,QAAQ,kBAAmBpD,EAAS,IAGvD2xD,EAAYG,mBAAmB9xD,IACvBA,EAASqJ,aAAerJ,EAASqJ,YAAY/U,OAAS0C,KAAKqB,OAI/DrB,KAAK0Q,UAAUtE,QAAQ,kBAAmBpD,EAAS,IAGvD2xD,EAAYI,cAAcC,IAClBA,EAAI19D,OAAS0C,KAAKqB,OAItBrB,KAAK0Q,UAAUtE,QAAQ,aAAc4uD,EAAI,IAG7CL,EAAYM,cAAcD,IAClBA,EAAI19D,OAAS0C,KAAKqB,OAItBrB,KAAK0Q,UAAUtE,QAAQ,aAAc4uD,EAAI,IAG7CL,EAAYO,gBAAgBF,IACpBA,EAAI19D,OAAS0C,KAAKqB,QAGtBrB,KAAKm7D,OAAOC,SAAU,EACtBp7D,KAAK0Q,UAAUtE,QAAQ,eAAgB4uD,GAAI,IAG/CL,EAAYU,kBAAkBL,IACtBA,EAAI19D,OAAS0C,KAAKqB,QAGtBrB,KAAKm7D,OAAOC,SAAU,EACtBp7D,KAAK0Q,UAAUtE,QAAQ,iBAAkB4uD,GAAI,GAEpD,CAED,QAAI19D,GAAiB,OAAO0C,KAAKqB,KAAQ,CACzC,SAAI6D,GAAkB,OAAOlF,KAAKm7D,OAAOG,KAAQ,CACjD,WAAItzC,GAAoB,OAAOhoB,KAAKm7D,OAAOI,OAAU,CACrD,aAAIC,GAAuB,OAAOx7D,KAAKm7D,OAAOM,SAAY,CAC1D,WAAIC,GAAqB,OAAO17D,KAAKm7D,OAAOQ,OAAU,CACtD,WAAIC,GAAoB,OAAO57D,KAAKm7D,OAAOU,OAAU,CACrD,UAAIC,GAAoB,OAAO97D,KAAKm7D,OAAOY,QAAW,CACtD,aAAIC,GAAsB,OAAOh8D,KAAKm7D,OAAOc,eAAkB,CAC/D,gBAAIlT,GAAyB,OAAO/oD,KAAKm7D,OAAO3gB,YAAe,CAC/D,sBAAI+Q,GAA+B,OAAOvrD,KAAKm7D,OAAOe,kBAAqB,CAC3E,kBAAIC,GACA,OAAKn8D,KAAKm7D,OAAOiB,UAGV7B,GAAYv6D,KAAKm7D,OAAOiB,WAFpB,EAGd,CACD,iBAAIC,GAA2B,OAAOr8D,KAAKm7D,OAAOmB,aAAgB,CAClE,aAAIC,GAAuB,OAAOv8D,KAAKm7D,OAAOC,UAAW,CAAO,CAChE,QAAIoB,GAAiB,OAAOx8D,KAAKm7D,OAAOsB,IAAO,CAC/C,WAAIC,GAAoB,OAAO18D,KAAKm7D,OAAOwB,OAAU,CACrD,aAAIC,GAAsB,OAAO58D,KAAKm7D,OAAO0B,SAAY,CAEzD,kBAAIC,GACA,OAAK98D,KAAKm7D,OAAO4B,eAGVxC,GAAYv6D,KAAKm7D,OAAO4B,gBAFpB,EAGd,CAED,YAAIC,GACA,OAAKh9D,KAAKm7D,OAAO8B,SAGVj9D,KAAKm7D,OAAO8B,SAFR,EAGd,CAED,cAAIC,GACA,YAAoC/4D,IAA7BnE,KAAKm7D,OAAO3gB,cAA2D,KAA7Bx6C,KAAKm7D,OAAO3gB,YAChE,CAED,iBAAIve,GACA,MAAO,CACHu/B,UAAWx7D,KAAKm7D,OAAOM,UACvBG,QAAS57D,KAAKm7D,OAAOU,QACrBC,OAAQ97D,KAAKm7D,OAAOY,SACpBC,UAAWh8D,KAAKm7D,OAAOc,gBACvBlT,aAAc/oD,KAAKm7D,OAAO3gB,aAC1B6hB,cAAer8D,KAAKm7D,OAAOmB,cAElC,CAED,aAAIzD,GACA,OAAO74D,KAAK26D,YAAY9B,YAAYx2D,QAAQ2G,GAAmDA,EAASqJ,YAAY/U,OAAS0C,KAAKqB,OACrI,CAED,QAAIjF,GACA,OAAO4D,KAAKm7D,OAAOgC,IACtB,CAED,QAAI7U,GACA,IAAKtoD,KAAKm7D,OAEN,MAAO,UAIX,GAAIn7D,KAAKm7D,OAAOiC,MAAoC,iBAArBp9D,KAAKm7D,OAAOiC,KACvC,OAAOp9D,KAAKm7D,OAAOiC,KAAKp4D,cAK5B,GAAIhF,KAAKk9D,WACL,MAAO,UAIX,GAAIl9D,KAAKm7D,OAAOiB,WAAap8D,KAAKm7D,OAAOiB,UAAU9T,MAA8C,iBAA/BtoD,KAAKm7D,OAAOiB,UAAU9T,KACpF,OAAOtoD,KAAKm7D,OAAOiB,UAAU9T,KAAKtjD,cAItC,IAAIq4D,EAAkBr9D,KAAKm7D,OAAOmC,sBAClC,GAAID,EAAiB,CAEjBA,EAAkBA,EAAgBh3C,MAAM,KAAK5oB,KAAK,IAClD,MAAM8/D,EAAY,SACZC,EAAYH,EAAgBhqD,QAAQkqD,GAC1C,IAAmB,IAAfC,EAAkB,CAClB,MAAMC,EAAiBD,EAAYD,EAAU7/D,OACvCggE,EAAgBL,EAAgBhqD,QAAQ,IAAMoqD,GAC9CE,EAAQN,EAAgBO,OAAOH,EAAgBC,EAAgBD,GACrE,GAAIE,GAA0B,iBAAVA,EAChB,OAAOA,EAAM34D,aAEpB,CACJ,CAGD,MAAO,MACV,CAEM,sBAAM64D,GAGT,aAFqB79D,KAAKy/C,KAAK/4B,OAAOo3C,GAAoC,CAAEC,GAAI,CAAEC,KAAM,CAACh+D,KAAKqB,WACxE89B,SAAS8+B,aAAa,EAE/C,CAEM,eAAAC,CAAgB1rC,GACdxyB,KAAKm7D,SACNn7D,KAAKm7D,OAAS,CAAEgD,KAAM3rC,EAAM2rC,OAGhCvhE,OAAOC,KAAK21B,GAAOpzB,SAASpC,IACvBgD,KAAKm7D,OAAen+D,GAAQw1B,EAAcx1B,EAAI,GAEtD,CAEM,KAAAohE,CAAM/gE,EAAmB0G,GAC5B,OAAO,IAAI+B,SAA8CgC,MAAO/B,EAAS4H,mBACrE,GAAIusC,GAAkB78C,GAClBA,EAAU,CAAA,OACP,IAAyB,UAArB2C,KAAK46D,wBAAgB,IAAAhvD,OAAA,EAAAA,EAAE6uD,cAAkC,iBAAZp9D,GAAwBiB,MAAMC,QAAQlB,GAC1F,OAAOsQ,EAAO,IAAI9N,MAAM,qDAG5B,GAAIq6C,GAAkBn2C,GAClBA,EAAU,CAAA,OACP,IAA2B,QAAvBm3C,EAAAl7C,KAAK46D,wBAAkB,IAAA1f,OAAA,EAAAA,EAAAuf,cAAkC,iBAAZ12D,EACpD,OAAO4J,EAAO,IAAI9N,MAAM,qDAG5B,MAAMvC,EAAO0C,KAAKqB,MAClB,IAAIg9D,EAAsE,QAAjDplC,EAAqB,UAApBl1B,EAAQu6D,oBAAY,IAAAC,EAAAA,EAAIx6D,EAAQy6D,uBAAgB,IAAAvlC,GAAAA,EACtEwlC,EAAe,IACY,iBAApB16D,EAAQiQ,UACfyqD,EAAiC,IAAlB16D,EAAQiQ,SAG3B,MAAM0qD,EAA8Bz+D,IAChC,IAAI2iB,EAEJ,MAAM5O,EAAU1N,YAAW,KACnBsc,GACAA,IAEJjV,EAAO,2CAA2C1N,aAAcD,KAAK1C,OAAO,GAC7EmhE,GAEGE,EAAYt3D,IACVA,EAAEpH,KAAOA,IAGT2iB,IACAA,IACAA,OAAQze,GAEZ8P,aAAaD,GACbjO,EAAQsB,GAAE,EAIVub,EADAy7C,EACQr+D,KAAK26D,YAAYiE,yBAAyBD,GAG1C3+D,KAAK26D,YAAYE,kBAAkB8D,EAC9C,EAGL,IACI,MAWME,SAXe7+D,KAAKy/C,KAAK/4B,OH9NL,2BG+NtB,CACIy3C,KAAM7gE,EACNwhE,QAASzhE,EACT0hE,QAASh7D,GAEb,OACA,CACI06B,wBAAyBggC,KAGQt/B,SAQzC,QAPiC,IAAtB0/B,EAAU7qD,cAAsD,IAApBjQ,EAAQiQ,UAC3DyqD,EAAmC,IAApBI,EAAU7qD,cAEW,IAA7B6qD,EAAUG,qBAAsE,IAA5Bj7D,EAAQy6D,sBAAmE,IAAzBz6D,EAAQu6D,eACrHD,EAAqBQ,EAAUG,gBAG/BH,GAAaA,EAAUI,GACvB,GAA8B,cAA1Bj/D,KAAK26D,YAAYrS,KAAsB,CAGvC,MAAMt/C,EAAWhJ,KAAK26D,YAAYuE,sBAAsB,CACpDC,gBAAYh7D,EACZi7D,qBAAiBj7D,EACjB26D,aAAS36D,EACTm3D,WAAOn3D,EACPk7D,gBAAYl7D,EACZ86D,GAAIJ,EAAUI,GACdd,KAAMU,EAAUV,OAEpBp4D,EAAQiD,EACX,MAEG01D,EAA2BG,EAAUI,SAKzCl5D,OAAQ5B,EAEf,CAAC,MAAOmH,GACLqC,EAAwB,UAAjBrC,EAAMgC,eAAW,IAAAgyD,EAAAA,EAAAh0D,EAC3B,IAER,CAEM,iBAAAuvD,CAAkBrvD,GAErB,OADAgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,kBAAmBC,EAChD,CAEM,iBAAAsvD,CAAkBtvD,GAErB,OADAgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,kBAAmBC,EAChD,CAEM,WAAA+zD,CAAY/zD,GAOf,OANAgvD,GAAShvD,EAAUxL,KAAK46D,kBACpB56D,KAAKm7D,OAAOC,SACZ90D,YAAW,KACPtG,KAAK0Q,UAAUtE,QAAQ,eAAgBpM,KAAK,GAC7C,GAEAA,KAAK0Q,UAAUnF,IAAI,eAAgBC,EAC7C,CAEM,aAAAg0D,CAAch0D,GAOjB,OANAgvD,GAAShvD,EAAUxL,KAAK46D,mBACI,IAAxB56D,KAAKm7D,OAAOC,SACZ90D,YAAW,KACPtG,KAAK0Q,UAAUtE,QAAQ,iBAAkBpM,KAAK,GAC/C,GAEAA,KAAK0Q,UAAUnF,IAAI,iBAAkBC,EAC/C,CAEM,SAAAi0D,CAAUj0D,GACbgvD,GAAShvD,EAAUxL,KAAK46D,kBACxB56D,KAAK0Q,UAAUnF,IAAI,aAAcC,EACpC,CAEM,SAAAk0D,CAAUl0D,GACbgvD,GAAShvD,EAAUxL,KAAK46D,kBACxB56D,KAAK0Q,UAAUnF,IAAI,aAAcC,EACpC,EC7TS,MAAOm0D,GAajB,WAAApjE,CACYo9C,EACAimB,EACAjF,EACAlb,EACAwV,EACAlO,EACR8Y,EACQjF,GAPA56D,KAAG25C,IAAHA,EACA35C,KAAQ4/D,SAARA,EACA5/D,KAAW26D,YAAXA,EACA36D,KAAIy/C,KAAJA,EACAz/C,KAAWi1D,YAAXA,EACAj1D,KAAQ+mD,SAARA,EAEA/mD,KAAc46D,eAAdA,EApBJ56D,KAAS0Q,UAAqB9D,KAsB9BizD,IAIJ7/D,KAAK8/D,4BAA8B9/D,KAAK26D,YAAYG,mBAAmB9xD,IAC/DA,EAAS/I,KAAOD,KAAK25C,KAIzB35C,KAAK0Q,UAAUtE,QAAQ,UAAWpD,EAAS,IAG/ChJ,KAAK+/D,mCAAqC//D,KAAK26D,YAAYiE,0BAA0B51D,IAC7EA,EAAS/I,KAAOD,KAAK25C,KAIzB35C,KAAK0Q,UAAUtE,QAAQ,WAAYpD,EAAS,IAEnD,CAED,MAAI/I,GAAe,OAAOD,KAAK25C,GAAM,CAErC,eAAItnC,GAAyD,OAAOrS,KAAK26D,YAAYtoD,YAAYrS,KAAK4/D,SAAY,CAElH,YAAIpkB,GACA,IAAKx7C,KAAKi1D,YACN,MAAM,IAAIp1D,MAAM,+DAEpB,OAAOG,KAAKi1D,YAAY/vC,IAAI2zC,UAAUtmC,MACjClwB,QAAQ29D,GAA2DA,EAAiB//D,KAAOD,KAAKmjD,cAAa,EACrH,CAED,mBAAI8c,GAA6B,OAAOjgE,KAAKkgE,gBAAmB,CAGhE,qBAAIC,GACA,OAAOngE,KAAK26D,YAAY9B,YAAYx2D,QAAQgF,GACjB,aAAvBA,EAAEgL,YAAYjW,MACdiL,EAAEihB,YACFjhB,EAAEihB,aAAetoB,KAAKmjD,aAC7B,CAED,yBAAIid,GACA,GAAKpgE,KAAKmjD,YAGV,OAAOnjD,KAAKmgE,kBAAkB99D,QAAQg+D,GAAUA,eAAAA,EAAuBJ,kBAAiB,EAC3F,CAED,UAAI76D,GACA,IAAKpF,KAAK+mD,SACN,MAAM,IAAIlnD,MAAM,4DAGpB,IAAIq+C,EAAMl+C,KAAK+mD,SAASqJ,OAAO/tD,QAAQk7C,GAAMA,EAAEt9C,KAAOD,KAAK25C,MAAK,GAMhE,OALKuE,GAAOl+C,KAAKi1D,aAAej1D,KAAKw7C,UAAYx7C,KAAKogE,wBAElDliB,EAAMl+C,KAAKogE,sBAAsBh7D,QAG9B84C,CACV,CAED,WAAI7gD,aACA,OAAmD,QAA5CkhE,EAAwB,QAAxB3yD,EAAA5L,KAAKsgE,uBAAmB,IAAA10D,EAAAA,EAAW,QAAXsvC,EAAAl7C,KAAKoF,cAAM,IAAA81C,OAAA,EAAAA,EAAE79C,eAAO,IAAAkhE,EAAAA,EAAI,CAAA,CAC1D,CAED,SAAIr5D,GAAkB,OAAOlF,KAAKugE,MAAS,CAE3C,sBAAIC,GAAgC,OAAOxgE,KAAKygE,mBAAsB,CAEtE,cAAIn4C,GAAuB,OAAOtoB,KAAKmjD,WAAc,CAErD,cAAIgW,GAAwB,OAAOn5D,KAAK0gE,WAAc,CAEtD,qBAAIC,GAA+B,OAAQ3gE,KAAK0gE,WAAc,CAE9D,OAAIroB,GACA,OAAOr4C,KAAK4gE,YACf,CAED,mBAAIC,GACA,OAAO7gE,KAAK4gE,YACf,CAEM,cAAAE,CAAet1D,GAOlB,OANAgvD,GAAShvD,EAAUxL,KAAK46D,kBACpB56D,KAAK4gE,cACLt6D,YAAW,KACPtG,KAAK0Q,UAAUtE,QAAQ,WAAYpM,KAAK,GACzC,GAEAA,KAAK0Q,UAAUnF,IAAI,WAAYC,EACzC,CAEM,UAAAu1D,CAAWv1D,GACd,OAAOxL,KAAK8gE,eAAet1D,EAC9B,CAEM,SAAAw1D,CAAUx1D,GAEb,OADAgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,UAAWC,EACxC,CAIM,SAAAy1D,GACH,OAAO,IAAIn7D,SAAQ,CAACC,EAAS4H,KAEzB,MAAM/J,EAAS5D,KAAKoF,OACpB,GAAIxB,EAEA,YADAmC,EAAQnC,GAKZ,MAAMgzC,EAAO,CAACtrC,EAAelG,KACrBkG,GACAqC,EAAOrC,GAGPlG,GACAW,EAAQX,GAGZkB,YAAW,KACP2N,aAAaD,GACb4O,GAAO,GACR,EAAE,EAIH5O,EAAU1N,YAAW,KACvBswC,EAAK,IAAI/2C,MAAM,iCAAiCG,KAAK25C,OAAO,GAC7D,KAEG/2B,EAAQ5iB,KAAK+mD,SAASma,eAAe3jB,IACnCA,EAAEt9C,KAAOD,KAAK25C,KACd/C,OAAKzyC,EAAWo5C,EACnB,GACH,GAET,CAEM,eAAA2gB,CAAgB1rC,GACnBxyB,KAAKsgE,gBAAkB9tC,EAAMssC,QAC7B9+D,KAAKugE,OAAS/tC,EAAM8oC,MACpBt7D,KAAKygE,qBAAsB,EACvBjuC,EAAM2sC,YAAmC,KAArB3sC,EAAM2sC,aAC1Bn/D,KAAKmjD,YAAc3wB,EAAM2sC,WACzBn/D,KAAKygE,qBAAsB,GAE/BzgE,KAAKkgE,iBAAmB1tC,EAAM4sC,iBACzBp/D,KAAKmjD,aAAenjD,KAAKsgE,iBAAmBtgE,KAAKsgE,gBAAgBh4C,aAClEtoB,KAAKmjD,YAAcnjD,KAAKsgE,gBAAgBh4C,YAE5CtoB,KAAK0gE,YAAc3iE,QAAQiC,KAAKmjD,aAEhCnjD,KAAKmhE,2BAA2B3uC,EACnC,CAEM,0BAAA2uC,CAA2B3uC,GAC9B,IAAKA,EAAM6sC,WACP,OAGJ,MAAM+B,EAAoD5uC,EAAM6sC,WAC5D+B,GAAgBA,EAAa1jE,OAAS,IAAMw8C,GAAkBknB,EAAa,MAC3EphE,KAAK4gE,aAAeQ,EAAa,GAExC,CAEM,IAAAlxD,GACH,OAAO,IAAIpK,SAAQ,CAACC,EAAS4H,KACzB,IAAI0zD,EAAcrhE,KAAK25C,IACnB35C,KAAKigE,kBACLoB,EAAcrhE,KAAKsoB,YAEvB,MAAMhL,EAActd,KAAK26D,YAAYG,mBAAmB9xD,IAChDA,EAAS/I,KAAOohE,IAChB/jD,IACAvX,IACH,IAGL/F,KAAKy/C,KAAK/4B,OJvMmB,0BIyMzB,CACIy3C,KAAMn+D,KAAK4/D,SACXX,GAAIj/D,KAAK25C,MAEZnsC,MAAK,KAC4B,cAA1BxN,KAAK26D,YAAYrS,OACjBtoD,KAAK26D,YAAY2G,sBAAsB,CACnCnD,KAAMn+D,KAAK4/D,SACXX,GAAIj/D,KAAKC,KAGb8F,IACH,IAEJvD,OAAOuJ,GAAa4B,EAAO5B,IAAK,GAE5C,CAEM,QAAAk4C,GACH,OAAOjkD,KAAKy/C,KAAK/4B,OJ3NoB,8BI2N2B,CAAEy3C,KAAMn+D,KAAK4/D,SAAUX,GAAIj/D,KAAK25C,KACnG,CAEM,IAAA/C,GAGH52C,KAAK0Q,UAAUjE,QAEfzM,KAAK+/D,qCACL//D,KAAK8/D,6BACR,CAEM,UAAAyB,GACH,OAAOz7D,QAAQC,QAAQ/F,KAAK3C,QAC/B,CAEM,eAAMmkE,GAET,aADqBxhE,KAAKy/C,KAAK/4B,OJ1Ob,kBI0OyC,CAAE8N,QAAS,eAAgB2pC,KAAMn+D,KAAK4/D,SAAUX,GAAIj/D,KAAK25C,OACtGxa,QACjB,ECxPS,MAAOsiC,GAMjB,WAAAllE,CACW+rD,EACC7I,EACAwV,EACAlO,EACA9wB,EACAyrC,EACA9G,GAND56D,KAAIsoD,KAAJA,EACCtoD,KAAIy/C,KAAJA,EACAz/C,KAAWi1D,YAAXA,EACAj1D,KAAQ+mD,SAARA,EACA/mD,KAAOi2B,QAAPA,EACAj2B,KAAe0hE,gBAAfA,EACA1hE,KAAc46D,eAAdA,EAXJ56D,KAAK2hE,MAAuC,GAC5C3hE,KAAU4hE,WAAmB,GAC7B5hE,KAAS0Q,UAAqB9D,KAc/B5M,KAAA6hE,kBAAoB/5D,MAAOk2D,IAC9B,MAAMj4B,EAAO,CACTg4B,GAAI,CACAC,UAAM75D,IAIV7F,MAAMC,QAAQy/D,KACdj4B,EAAKg4B,GAAK,CACNC,SAIR,aADqBh+D,KAAKy/C,KAAK/4B,OAAO2zC,GAA2Bt0B,IACnD5G,SAAS8+B,YAAY,EAGhCj+D,KAAAqS,YAAe/U,UAClB,IAA2B,QAAvBsO,EAAA5L,KAAK46D,wBAAkB,IAAAhvD,OAAA,EAAAA,EAAA6uD,cAA+B,iBAATn9D,EAC7C,MAAM,IAAIuC,MAAM,yBAGpB,OAAOG,KAAK2hE,MAAMrkE,EAAK,EAGpB0C,KAAYi+D,aAAG,IACXrhE,OAAOC,KAAKmD,KAAK2hE,OAAOv6D,KAAKpG,GAAchB,KAAK2hE,MAAM3gE,KAG1DhB,KAAS64D,UAAG,IACR74D,KAAK4hE,WAAWx6D,KAAKC,GAAMA,IAG/BrH,KAAa8hE,cAAG,KACnB,MAAMn8D,EAA6B,oBAAXP,QAA2BA,OAAeO,SAClE,IAAIA,EAMG,CACH,MAAMwvC,EAAan1C,KAAKy/C,KAAKz2C,SAASA,SACtC,OAAOhJ,KAAK4hE,WAAWnoD,MAAMpS,GAAMA,EAAEpH,KAAOk1C,GAC/C,CARG,GAAIn1C,KAAK0hE,iBAAmB,EAAG,CAE3B,MAAMvsB,EAAaxvC,EAAS2vC,cAC5B,OAAOt1C,KAAK4hE,WAAWnoD,MAAMpS,GAAMA,EAAEpH,KAAOk1C,GAC/C,CAKW,EAGbn1C,KAAgB+hE,iBAAG,WACtB,GAAI/hE,KAAKy/C,KAAKz2C,SACV,eAAO4C,EAAA5L,KAAKqS,YAAYrS,KAAKy/C,KAAKz2C,SAASqQ,gCAAoBrZ,KAAKqS,YAAYrS,KAAKy/C,KAAKz2C,SAASqJ,YACtG,EAGErS,KAAAgiE,wBAA2BC,IAC9B,MAAMC,EAAcliE,KAAKi+D,eACrBiE,EAAYxkE,OAAS,GACrBwkE,EAAY9iE,SAASkrC,IACjB,MAAMhtC,EAAOgtC,EAAKhtC,KACI2kE,EAAQxoD,MAAMpS,GAAMA,EAAE82D,OAAS7zB,EAAKhtC,QAGtD0C,KAAKmiE,iBAAiB,CAAEhE,KAAM7gE,GACjC,IAGT2kE,EAAQ7iE,SAASkrC,IACS43B,EAAYzoD,MAAMpS,GAAMA,EAAE/J,OAASgtC,EAAK6zB,QAG1Dn+D,KAAKoiE,eAAe93B,EACvB,GACH,EAGCtqC,KAAAqiE,8BAAiCC,IACpC,MAAMC,EAAmBviE,KAAK64D,YAC1B0J,EAAiB7kE,OAAS,GAC1B6kE,EAAiBnjE,SAASkrC,IACtB,MAAMrqC,EAAKqqC,EAAKrqC,GACMqiE,EAAa7oD,MAAMpS,GAAMA,EAAE43D,KAAOh/D,KAGpDD,KAAKshE,sBAAsB,CAAEnD,KAAM7zB,EAAKj4B,YAAY/U,KAAM2hE,GAAIh/D,GACjE,IAGTqiE,EAAaljE,SAASkrC,IACIi4B,EAAiB9oD,MAAMpS,GAAMA,EAAEpH,KAAOqqC,EAAK20B,MAG7Dj/D,KAAKk/D,sBAAsB50B,EAC9B,GACH,EAGCtqC,KAAAoiE,eAAkB5vC,IACrB,MAAMvyB,EAAKD,KAAKwiE,UAAUhwC,GAC1BxyB,KAAKi2B,QAAQzV,MAAM,cAAcvgB,KACjCD,KAAK2hE,MAAM1hE,GAAM,IAAIy6D,GAAgB16D,KAAMC,EAAID,KAAKy/C,KAAMz/C,KAAK46D,gBAC/D,MAAMI,EAAMh7D,KAAKyiE,oBAAoBjwC,GAErCxyB,KAAK0Q,UAAUtE,QAAQ,WAAY4uD,GAEnCh7D,KAAK0Q,UAAUtE,QAAQ,eAAgB4uD,EAAI,EAGxCh7D,KAAA0iE,iBAAoBlwC,IAGvB,MAAMwoC,EAAMh7D,KAAKyiE,oBAAoBjwC,GAErCxyB,KAAK0Q,UAAUtE,QAAQ,aAAc4uD,EAAI,EAGtCh7D,KAAAmiE,iBAAoB3vC,IACvB,MAAMvyB,EAAKD,KAAKwiE,UAAUhwC,GAC1BxyB,KAAKi2B,QAAQzV,MAAM,gBAAgBvgB,KACnC,MAAM+6D,EAAMh7D,KAAKqS,YAAYpS,GAG7BD,KAAK4hE,WAAa5hE,KAAK4hE,WAAWv/D,QAAQgF,GAAMA,EAAEgL,YAAY/U,OAAS09D,EAAI19D,cAEpE0C,KAAK2hE,MAAM1hE,GAElBD,KAAK0Q,UAAUtE,QAAQ,aAAc4uD,EAAI,EAItCh7D,KAAA2iE,eAAkBnwC,IACrB,MAAMvyB,EAAKD,KAAKwiE,UAAUhwC,GACpBwoC,EAAMh7D,KAAK4iE,eAAe3iE,GAChC+6D,EAAIkD,gBAAgB1rC,GAEhBwoC,EAAIuB,UACJv8D,KAAK0Q,UAAUtE,QAAQ,eAAgB4uD,GAEvCh7D,KAAK0Q,UAAUtE,QAAQ,iBAAkB4uD,EAC5C,EAGEh7D,KAAAk/D,sBAAyB1sC,IAC5BxyB,KAAKi2B,QAAQzV,MAAM,eAAegS,EAAM2rC,QAAQ3rC,EAAMysC,MACtD,MAAMh/D,EAAKD,KAAK6iE,eAAerwC,GACzB5sB,EAAU5F,KAAK8iE,oBAAoBtwC,GAEnCxpB,EAAW,IAAI22D,GAAa1/D,EAAI2F,EAAS5F,KAAMA,KAAKy/C,KAAMz/C,KAAKi1D,YAAaj1D,KAAK+mD,UAAU,EAAO/mD,KAAK46D,gBAO7G,OALA56D,KAAK+iE,yBAAyB/5D,EAAUwpB,GAExCxyB,KAAK4hE,WAAW1hE,KAAK8I,GAErBhJ,KAAK0Q,UAAUtE,QAAQ,kBAAmBpD,GACnCA,CAAQ,EAGZhJ,KAAAshE,sBAAyB9uC,IAC5BxyB,KAAKi2B,QAAQzV,MAAM,uBAAuBgS,EAAM2rC,QAAQ3rC,EAAMysC,MAE9D,MAAMh/D,EAAKD,KAAK6iE,eAAerwC,GACzB5sB,EAAU5F,KAAK8iE,oBAAoBtwC,GACnCxpB,EAAWhJ,KAAKgjE,oBAAoB/iE,EAAI2F,GAE9C5F,KAAK4hE,WAAa5hE,KAAK4hE,WAAWv/D,QAAQgF,IAAOrH,KAAKijE,eAAe57D,EAAGpH,EAAI2F,KAE5E5F,KAAK0Q,UAAUtE,QAAQ,kBAAmBpD,GAC1CA,EAAS4tC,MAAM,EAGZ52C,KAAAkjE,6BAAgC1wC,IAEnC,MAAMvyB,EAAKD,KAAK6iE,eAAerwC,GACzB5sB,EAAU5F,KAAK8iE,oBAAoBtwC,GACnCxpB,EAAWhJ,KAAKgjE,oBAAoB/iE,EAAI2F,GAE9CoD,EAASm4D,2BAA2B3uC,GAEpCxyB,KAAK0Q,UAAUtE,QAAQ,yBAA0BpD,EAAS,EAGvDhJ,KAAAmjE,0BAA6B3wC,IAEhC,MAAMvyB,EAAKD,KAAK6iE,eAAerwC,GACzB5sB,EAAU5F,KAAK8iE,oBAAoBtwC,GAEnCxpB,EAAW,IAAI22D,GAAa1/D,EAAI2F,OAASzB,OAAWA,OAAWA,OAAWA,GAD5D,EACoFnE,KAAK46D,gBAE7G56D,KAAK+iE,yBAAyB/5D,EAAUwpB,GAExCxyB,KAAK0Q,UAAUtE,QAAQ,sBAAuBpD,EAAS,EAGpDhJ,KAAAojE,sBAAyB5wC,IAE5B,MAAMvyB,EAAKD,KAAK6iE,eAAerwC,GACzBwoC,EAAMh7D,KAAK8iE,oBAAoBtwC,GAC/BxpB,EAAWhJ,KAAKgjE,oBAAoB/iE,EAAI+6D,GAE9Ch7D,KAAK+iE,yBAAyB/5D,EAAUwpB,EAAM,EAI3CxyB,KAAA66D,kBAAqBrvD,IACxBgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,kBAAmBC,EAAUxL,KAAK4hE,aAGzD5hE,KAAAqjE,sBAAyB73D,IAC5BgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,sBAAuBC,IAG9CxL,KAAA86D,kBAAqBtvD,IACxBgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,kBAAmBC,IAG1CxL,KAAAsjE,kBAAqB93D,IACxBgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,kBAAmBC,IAG1CxL,KAAA4+D,yBAA4BpzD,IAC/BgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,yBAA0BC,IAGjDxL,KAAAujE,WAAc/3D,IACjBgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,WAAYC,EAAU5O,OAAOD,OAAOqD,KAAK2hE,SAGhE3hE,KAAA+6D,aAAgBvvD,IACnBgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,aAAcC,IAGrCxL,KAAAk7D,eAAkB1vD,IACrBgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,eAAgBC,IAGvCxL,KAAAq7D,iBAAoB7vD,IACvBgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,iBAAkBC,IAGzCxL,KAAAi7D,aAAgBzvD,IACnBgvD,GAAShvD,EAAUxL,KAAK46D,kBACjB56D,KAAK0Q,UAAUnF,IAAI,aAAcC,GA1P3C,CA6PO,cAAAo3D,CAAe3iE,GACnB,MAAM2D,EAAS5D,KAAKqS,YAAYpS,GAChC,IAAK2D,EACD,MAAM/D,MAAM,eAAeI,eAE/B,OAAO2D,CACV,CAEO,SAAA4+D,CAAUhwC,GACd,OAAOA,EAAM2rC,IAChB,CAEO,cAAA8E,CAAej6D,EAAgD/I,EAAY2F,GAC/E,OAAOoD,EAAS/I,KAAOA,GAAM+I,EAASqJ,YAAY/U,OAASsI,CAC9D,CAEO,uBAAA49D,CAAwBvjE,EAAY2F,GACxC,OAAO5F,KAAK4hE,WAAWv/D,QAAQgF,GAAMrH,KAAKijE,eAAe57D,EAAGpH,EAAI2F,KAAU,EAC7E,CAEO,mBAAAo9D,CAAoB/iE,EAAY2F,GACpC,MAAMhC,EAAS5D,KAAKwjE,wBAAwBvjE,EAAI2F,GAChD,IAAKhC,EACD,MAAM/D,MAAM,oBAAoBI,eAEpC,OAAO2D,CACV,CAEO,cAAAi/D,CAAerwC,GACnB,OAAOA,EAAMysC,EAChB,CAEO,mBAAA6D,CAAoBtwC,GACxB,OAAOA,EAAM2rC,IAChB,CAEO,mBAAAsE,CAAoBjwC,GACxB,MAAMvyB,EAAKD,KAAKwiE,UAAUhwC,GAC1BxyB,KAAKi2B,QAAQzV,MAAM,wBAAwBvgB,MAAO4G,KAAKC,UAAU0rB,MACjE,MAAMwoC,EAAMh7D,KAAK4iE,eAAe3iE,GAIhC,OAFA+6D,EAAIkD,gBAAgB1rC,GAEbwoC,CACV,CAEO,wBAAA+H,CAAyB/5D,EAAwBwpB,GACrDxyB,KAAKi2B,QAAQzV,MAAM,0BAA4BxgB,KAAK6iE,eAAerwC,GAAS,YAAcxyB,KAAK8iE,oBAAoBtwC,IACnHxpB,EAASk1D,gBAAgB1rC,EAC5B,EClUL,SAASiJ,GAAUvsB,EAAuBwsB,EAAsCC,GAC5E,MAAMzI,EAAcjH,MACNA,GAAOA,EAAI1vB,aAAe0vB,EAAIrhB,MAAQqhB,EAAIngB,OAGxD,OAAKonB,EAAWwI,IAAqBxI,EAAWyI,IAI3CzI,EAAWwI,GAIJxI,EAAWyI,KACnBA,EAAgB,QAJhBD,EAAkB,OASfxsB,EAAQ1B,KAAKkuB,EAAiBC,IAb1BzsB,CAcf,CAEc,MAAOu0D,GAKjB,WAAAlnE,CACYkjD,GAAAz/C,KAAIy/C,KAAJA,EAJJz/C,KAAS0Q,UAAqB9D,KAC9B5M,KAAmB0jE,qBAAG,EAQvB1jE,KAAA2jE,qBAAwBhhC,IAC3B3iC,KAAK0Q,UAAUtE,QAAQ,gBAAiBu2B,EAAO,EAG5C3iC,KAAA4jE,uBAA0BtgC,IAC7BtjC,KAAK0Q,UAAUtE,QAAQ,kBAAmBk3B,EAAS,EAGhDtjC,KAAA6jE,UAAY,CAACzrD,EAAmC9M,IAC5CmwB,GACHz7B,KAAK8jE,WN1C+B,kCM4C/Bp/D,GAAqEA,EAAEy6B,SAAS4kC,SAErF3rD,EACA9M,GAIDtL,KAAAgkE,YAAc,CAAC5rD,EAAmE9M,IAS9EmwB,GARSz7B,KAAK8jE,WNhDQ,uBMkDxBp/D,IACG,MAAMqwB,EAAMrwB,EAAEy6B,SAAS8kC,SACvB,OAAOrnE,OAAOC,KAAKk4B,GAAK3tB,KAAKpK,GAAQ+3B,EAAI/3B,IAAK,IAI5Bob,EAAS9M,GAGhCtL,KAAAkkE,iBAAmB,CAAC9rD,EAA+D9M,IAO/EmwB,GANSz7B,KAAK8jE,WN3Da,4BM6D7Bp/D,GAAMA,EAAEy6B,SAASglC,aAClBhgE,GAGsBiU,EAAS9M,GAGhCtL,KAASokE,UAAG,CAACh8B,EAAgBhwB,EAAmC9M,IAO5DmwB,GANSz7B,KAAK8jE,WNzEmB,kCM2EnCp/D,GAAMA,EAAEy6B,SAASklC,eAClB,CAAEN,OAAQ37B,IAGYhwB,EAAS9M,GAGhCtL,KAAgBskE,iBAAG,CAAC3hC,EAAgBvqB,EAAmC9M,IAOnEmwB,GANSz7B,KAAK8jE,WN9Ea,4BMgF7Bp/D,GAAMA,EAAEy6B,SAASklC,eAClB,CAAEF,OAAQxhC,IAGYvqB,EAAS9M,GAGhCtL,KAAAukE,YAAc,CAACnsD,EAA+D9M,IAE1EmwB,GADSz7B,KAAK8jE,WN3FI,mBM4FC1rD,EAAS9M,GAGhCtL,KAAwBwkE,yBAAG,CAACC,EAAersD,EAAwC9M,IAO/EmwB,GANSz7B,KAAK8jE,WACjBY,IACChgE,GAAMA,EAAEy6B,SAASwlC,aAClB,CAAE75C,SAAU25C,IAGUrsD,EAAS9M,GAGhCtL,KAA8B4kE,+BAAG,CAACH,EAAe9hC,EAAgBvqB,EAAwC9M,IAMrGmwB,GALSz7B,KAAK8jE,WACjBY,IACChgE,GAAMA,EAAEy6B,SAASwlC,aAClB,CAAE75C,SAAU25C,EAAON,OAAQxhC,IAELvqB,EAAS9M,GAGhCtL,KAAI6kE,KAAG,CAAC94C,EAAc3T,EAAqC9M,IAOvDmwB,GANSz7B,KAAK8jE,WACjBgB,IACCpgE,GAAMA,EAAEy6B,SAAS4lC,QAClB,CAAEj6C,SAAUiB,IAGU3T,EAAS9M,GAGhCtL,KAAUglE,WAAG,CAACj5C,EAAc4W,EAAgBvqB,EAAqC9M,IAO7EmwB,GANSz7B,KAAK8jE,WACjBgB,IACCpgE,GAAMA,EAAEy6B,SAAS4lC,QAClB,CAAEj6C,SAAUiB,EAAMo4C,OAAQxhC,IAGJvqB,EAAS9M,GAGhCtL,KAAAilE,kBAAqBz5D,GACjBxL,KAAK0Q,UAAUnF,IAAI,kBAAmBC,GAG1CxL,KAAAklE,gBAAmB15D,GACfxL,KAAK0Q,UAAUnF,IAAI,gBAAiBC,GAGxCxL,KAAAqoD,KAAQtkD,GACJ/D,KAAK8jE,WNxJc,mBM0JtB,KACA//D,GAID/D,KAAAmlE,eAAkB35D,IACrBxL,KAAKolE,iBACEplE,KAAK0Q,UAAUnF,IAAI,iBAAkBC,IAGzCxL,KAAAqlE,QAAWthE,GACP/D,KAAK8jE,WNnKa,kBMqKrB,KACA//D,GAmBA/D,KAAU8jE,WAAG,CACjBl/C,EACA0gD,EACAv/B,KAEAA,EAAOA,GAAQ,GACR,IAAIjgC,SAAQ,CAACC,EAAS4H,KAEzB3N,KAAKy/C,KAAK/4B,OAAO9B,EAAQmhB,GACpBv4B,MAAM5J,IACE0hE,IACDA,EAAqBruC,GAAsDA,EAAEkI,UAEjFp5B,EAAQu/D,EAAkB1hE,GAAQ,IAErCpB,OAR4D8I,GAAUqC,EAAOrC,IAQ5D,IAtK7B,CAwIO,cAAA85D,GACCplE,KAAK0jE,sBACN1jE,KAAKy/C,KAAK7Z,SN7KgB,wBM6KiB99B,MAAOi+B,IAC9C,IACI,MAAMv5B,QAAgB1G,QAAQof,IAAIllB,KAAK0Q,UAAUtE,QAAQ,iBAAkB25B,IAE3E,MAAO,CAAEw/B,QADO/4D,EAAQ84B,MAAMkgC,GAAMA,EAAED,UAEzC,CAAC,MAAOj6D,GAER,KAELtL,KAAK0jE,qBAAsB,EAElC,ECvLE,MAAM+B,GAAiC,qCA2BjCC,GAET,WAAAnpE,CAAoB+pB,GAAAtmB,KAAOsmB,QAAPA,CACnB,CAEM,MAAAq/C,CAAO3H,EAAgD1V,GAC1D,IAAK0V,IAAS1/D,MAAMC,QAAQy/D,GACxB,OAAOl4D,QAAQ6H,OAAO,yEAE1B,GAAI26C,GAAiB,YAATA,GAA+B,UAATA,EAC9B,OAAOxiD,QAAQ6H,OAAO,0DAI1B,MAAM6mB,EAAiC,CACnCA,QAAS,SACTuR,KAAM,CACFi4B,OACA1V,KALRA,EAAOA,QAAAA,EAAQ,YAQf,OAAOtoD,KAAKsmB,QAAQI,OAAiD++C,GAAgCjxC,GAChGhnB,MAAMg4D,GAAMA,EAAErmC,UACtB,CAEM,SACH,OAAOn/B,KAAKsmB,QAAQI,OAA6B++C,GAAgC,CAAEjxC,QAAS,WACvFhnB,MAAMg4D,GAAMA,EAAErmC,SAAS6+B,MAC/B,CAEM,MAAAr4B,CAAOq1B,GACV,IAAKA,GAAsB,iBAARA,EACf,OAAOl1D,QAAQ6H,OAAO,8CAE1B,MAAM6mB,EAAiC,CACnCA,QAAS,SACTuR,KAAM,CACFi4B,KAAM,CAAChD,KAGf,OAAOh7D,KAAKsmB,QAAQI,OAAa++C,GAAgCjxC,GAAShnB,MAAMg4D,GAAMA,EAAErmC,UAC3F,CAEM,KAAA1yB,GAIH,OAAOzM,KAAKsmB,QAAQI,OAAa++C,GAHK,CAClCjxC,QAAS,UAE6DhnB,MAAMg4D,GAAMA,EAAErmC,UAC3F,CAEM,YAAAymC,CAAatoE,EAAc4lB,GAI9B,OAHKA,IACDA,EAAM,sBAEH,CACH5lB,OACAlB,KAAM,SACN8I,MAAO5H,EACPuoE,QAAS,CACL3iD,OAGX,ECnFU,IAAA4iD,GAACt+D,IAEZ,IAAKA,EACD,MAAM3H,MAAM,kBAGhB,IAAK2H,EAAO6wC,IACR,MAAMx4C,MAAM,yBAGhB,MAAMkmE,EAA+C,YAC/CC,EAA+C,YAG/C1d,EAAyC9gD,EAAO8gD,MAAQyd,EAC9D,GAAIzd,IAASyd,GAAczd,IAAS0d,GAHW,SAGG1d,EAE9C,MAAM,IAAIzoD,MAAM,qCAAqCyoD,sBAGzD,MAAMjR,EAAa7vC,EAAO6vC,WACpBgB,EAAM7wC,EAAO6wC,IACbnrC,EAAS1F,EAAO0F,OAChBouC,EAAU9zC,EAAO8zC,QACvB,IAAIrf,EAA+B,CAAA,EACnC,MAAMgqC,EAAa,IAAIxE,GAAenZ,EAAMjQ,EAAKhB,EAAYiE,EAASpuC,EAAO4S,UAAU,gBAAiBtY,EAAOkyD,gBAAgB,IAAMz9B,IAC/HiqC,EAAe,IAAIzC,GAAiBprB,GAE1C,IAAIzF,EACJ,GAAI0V,IAASyd,EACTnzB,EC/BM,SAAmBtsB,EAAuC2/C,GACpE,OAAO,IAAIngE,SAAuB,CAACC,EAAS4H,KACxC2Y,EAAQI,OAAoCo3C,GAAoC,CAAEqI,UAAU,IACvF34D,MAAMmmC,UACH,MAAMplC,EAAOolC,EAASxU,SAChBlD,EAAmD,QAAnCrwB,EAAA+nC,EAASxU,SAASlD,qBAAiB,IAAArwB,EAAAA,EAAA,CAAA,EACpD2C,GACDxI,EAAQk2B,GAGZ,MAAMgiC,EAAe1vD,EAAK0vD,aACrBA,GACDl4D,EAAQk2B,GAGZq+B,GAAa2D,GAAc72D,KAAKkjC,GAAS27B,EAAW7D,eAAe93B,KAEnEvkC,EAAQk2B,EAAc,IAEzBz5B,OAAOuJ,GAAe4B,EAAO,uCAAuC5B,EAAIuB,YAAW,GAEhG,CDUuB84D,CAAS/tB,EAAK4tB,OAC1B,CACH,MAAM3sC,EE/BA,SAAiC+e,EAAmC4lB,EAA8BiI,EAAgCG,GAC5I,IAAI/sC,EACAgtC,GAAY,EA8FhB,MAAO,CACHlI,MA9FU,KACV,IAAImI,EACAC,EAEJ,MAAMC,EAAgB,IAAI3gE,SAAuB,CAACC,EAAS4H,KACvD44D,EAAcxgE,EACdygE,EAAa74D,CAAM,IA8EvB,OA3EA0qC,EAAIrf,UAAU0tC,GAA4B,CAAEn6D,UAAW,CAAE45D,SAAUE,GAAa7pC,cAAe,MAC1FhvB,MAAMxK,IACHs2B,EAAet2B,EACfs2B,EAAawU,QAAQ64B,UACjB,MAAMC,EAAcD,EAAWp4D,KACzB0tB,EAAoC,QAApBrwB,EAAAg7D,EAAO3qC,qBAAa,IAAArwB,EAAAA,EAAI,GAExCi7D,EAA0CvM,GAAasM,EAAyC,oBAClGD,EAAWp4D,KAAKu4D,WAChB7I,EAAa+D,wBAAwB6E,GAErCA,EAA4BznE,SAASkrC,GAAmB2zB,EAAamE,eAAe93B,KAGxFgwB,GAAasM,EAA2C,sBACnDxnE,SAASkrC,GAAmB2zB,EAAayE,iBAAiBp4B,KAE/DgwB,GAAasM,EAA2C,sBACnDxnE,SAASkrC,GAAmB2zB,EAAakE,iBAAiB73B,KAE/DgwB,GAAasM,EAAyC,oBACjDxnE,SAASkrC,GAAmB2zB,EAAa0E,eAAer4B,KAE7D,MAAMy8B,EAAiDzM,GAAasM,EAA2C,sBA0B/G,GAxBID,EAAWp4D,KAAKu4D,WAChB7I,EAAaoE,8BAA8B0E,GAE3CA,EAA8B3nE,SAASkrC,GAAwB2zB,EAAaiB,sBAAsB50B,KAGtGgwB,GAAasM,EAA+C,0BACvDxnE,SAASkrC,GAAwB2zB,EAAakF,0BAA0B74B,KAE7EgwB,GAAasM,EAA2C,sBACnDxnE,SAASkrC,GAAwB2zB,EAAaqD,sBAAsBh3B,KAEzEgwB,GAAasM,EAA2C,sBACnDxnE,SAASkrC,GAAwB2zB,EAAamF,sBAAsB94B,KAEzEgwB,GAAasM,EAAkD,6BAC1DxnE,SAASkrC,GAAwB2zB,EAAaiF,6BAA6B54B,KAEhFgwB,GAAasM,EAAsC,iBAC9CxnE,SAASkrC,GAA6C47B,EAAavC,qBAAqBr5B,KAE7FgwB,GAAasM,EAAyC,oBACjDxnE,SAASkrC,GAA+C47B,EAAatC,uBAAuBt5B,MAE5Fg8B,EAAW,CACZA,GAAY,EACZ,MAAMU,EAAqBH,EAA4BvhC,MAAMvmC,GAAMA,EAAEo/D,OAAS9lB,EAAIrvC,SAASqJ,cACrF40D,EAA0BF,EAA8BzhC,MAAMj+B,GAAMA,EAAE43D,KAAO5mB,EAAIrvC,SAASA,WAChG,GAAIg+D,EACA,GAAIC,EACAV,EAAYtqC,OACT,CACH,MAAM9C,EAAK8kC,EAAapD,mBAAmBxzD,IACnCA,EAAEpH,KAAOo4C,EAAIrvC,SAASA,WACtBmwB,IACAotC,EAAYtqC,GACf,GAER,MAEDsqC,EAAYtqC,EAEnB,KAGL3C,EAAa8U,UAAUriC,GAAay6D,EAAWz6D,IAAK,IAGvDvJ,OAAOuJ,IAAc,IAAAH,EAAC,OAAA46D,EAAW,yBAAyBE,mBAAsD,QAAX96D,EAAAG,EAAIuB,eAAO,IAAA1B,EAAAA,EAAI/E,KAAKC,UAAUiF,KAAO,IAExI06D,CAAa,EAWpBv2D,KARS,KACLopB,GACAA,EAAavrB,OAChB,EAOT,CFrE6Bm5D,CAAoB7uB,EAAK4tB,EAAYC,EAAc5d,IAAS0d,GACjFpzB,EAAetZ,EAAa8kC,OAC/B,CAoDD,MAlD6C,CACzCv7C,MAAO,IAAM+vB,EAAaplC,MAAMkM,IAAQuiB,EAAgBviB,CAAC,IAEzDukD,aAAcgI,EAAWhI,aACzB5rD,YAAa4zD,EAAW5zD,YACxBwvD,kBAAmBoE,EAAWpE,kBAE9B0B,WAAY0C,EAAW1C,WACvBxI,aAAckL,EAAWlL,aACzBE,aAAcgL,EAAWhL,aACzBC,eAAgB+K,EAAW/K,eAC3BG,iBAAkB4K,EAAW5K,iBAE7BxC,UAAWoN,EAAWpN,UACtB,cAAIsO,GACA,OAAOlB,EAAWnE,eACrB,EACD,iBAAIsF,GACA,OAAOnB,EAAWlE,kBACrB,EAEDlH,kBAAmBoL,EAAWpL,kBAC9BC,kBAAmBmL,EAAWnL,kBAC9BwI,kBAAmB2C,EAAW3C,kBAC9BD,sBAAuB4C,EAAW5C,sBAElCQ,UAAWqC,EAAarC,UACxBG,YAAakC,EAAalC,YAC1BE,iBAAkBgC,EAAahC,iBAC/BM,yBAA0B0B,EAAa1B,yBACvCI,+BAAgCsB,EAAatB,+BAE7CN,iBAAkB4B,EAAa5B,iBAC/BF,UAAW8B,EAAa9B,UAExBG,YAAa2B,EAAa3B,YAE1BM,KAAMqB,EAAarB,KACnBG,WAAYkB,EAAalB,WAEzBC,kBAAmBiB,EAAajB,kBAEhC5c,KAAM6d,EAAa7d,KACnBgd,QAASa,EAAab,QAEtBF,eAAgBe,EAAaf,eAE7BkC,SAAU,IAAI3B,GAAcrtB,GAGtB,EG1FA,MAAO3pC,GACV,wBAAO44D,GACV,GAAsB,oBAAXliE,OACP,OAAQ,EAEZ,IAAKA,OAAOmiE,YACR,OAAQ,EAEZ,IAAKniE,OAAOmiE,YAAYv/C,QACpB,OAAQ,EAEZ,MAAMw/C,EAAMn1B,OAAOjtC,OAAOmiE,YAAYv/C,QAAQ41C,OAAO,EAAG,IACxD,OAAOn6C,MAAM+jD,IAAQ,EAAIA,CAC5B,CAEM,yBAAOC,CACV79D,EACA8xB,EACAC,GAEA,MAAM+rC,EAAQp8D,IACV,IAAInM,EAAMmM,EAIV,GAHIA,aAAiBzL,QACjBV,EAAMmM,EAAMgC,SAEa,mBAAlBquB,EAKX,OAAO71B,QAAQ6H,OAAOxO,GAJlBw8B,EAAcx8B,EAIQ,EAG9B,IACI,OAAOyK,IACF4D,MAAM5J,IAC4B,mBAApB83B,GACPA,EAAgB93B,GAEbA,KAEVpB,OAAO8I,GACGo8D,EAAKp8D,IAEvB,CAAC,MAAOS,GACL,OAAO27D,EAAK37D,EACf,CACJ,CAEM,iBAAO47D,CAAWtjB,EAAyCujB,GAU9D,OATgCA,EAASxgE,KAAK/H,IAC1C,MAAM0jB,KAAEA,EAAIpI,IAAEA,EAAKktD,iBAAkBhd,EAAOid,kBAAmBhd,GAAWzrD,EAE1E,MAAO,CACH0oE,QAAS1oE,EACT2oE,aAHYhoE,KAAKioE,sBAAsB,CAAEllD,OAAMpI,MAAKkwC,QAAOC,UAAUzG,GAIxE,IACFvlD,MAAK,CAACC,EAAGC,IAAMA,EAAEgpE,aAAejpE,EAAEipE,eAEN,GAAGD,OACrC,CAEM,+BAAOG,CAAyBnpE,EAA6CopE,EAAmDC,GACnI,MAAMC,EAAgBtpE,EAAE8rD,MAAQsd,EAAeG,YACzCC,EAAiBxpE,EAAE+rD,OAASqd,EAAeG,YAC3CE,EAAsBL,EAAeM,SAAS1lD,KAAOqlD,EAAeE,YACpEI,EAAqBP,EAAeM,SAAS9tD,IAAMytD,EAAeE,YAClEK,EAAuBR,EAAeM,SAAS5d,MAAQsd,EAAeG,YACtEM,EAAwBT,EAAeM,SAAS3d,OAASqd,EAAeG,YAExEO,EAAkBn1D,KAAKo1D,KAAKH,EAAuBN,GAAiB,EAAG,GACvEU,EAAkBr1D,KAAKo1D,KAAKF,EAAwBL,GAAkB,EAAG,GACzES,EAAuBt1D,KAAKu0B,MAAMugC,EAAsBK,GACxDI,EAAsBv1D,KAAKu0B,MAAMygC,EAAqBK,GAI5D,MAAO,CACHhmD,KAJSimD,EAAuBZ,EAAeE,YAK/C3tD,IAJQsuD,EAAsBb,EAAeE,YAK7Czd,MAAO9rD,EAAE8rD,MACTC,OAAQ/rD,EAAE+rD,OAEjB,CAEM,aAAOn8C,GACV,QAA6B,IAAlBD,GAAME,QACb,OAAOF,GAAME,QAGjB,GAAsB,oBAAXxJ,OAEP,OADAsJ,GAAME,SAAU,GACT,EAIX,IACIF,GAAME,QAA6D,qBAAnDhS,OAAO8N,UAAU1M,SAAS4M,KAAKP,OAAOwE,QACzD,CAAC,MAAOnK,GACLgK,GAAME,SAAU,CACnB,CACD,OAAOF,GAAME,OAChB,CAEM,iBAAOs6D,GACV,MCjGY,EAACz1D,EAAO,MAC1B,IAAIxT,EAAK,GACLoH,EAAIoM,EACR,KAAOpM,KACLpH,GAfF,mEAeqC,GAAhByT,KAAKC,SAAiB,GAE3C,OAAO1T,GD2FMuT,CAAO,GACjB,CAIO,4BAAOy0D,CAAsBkB,EAAqCC,GACtE,MAAMC,EAAMF,EAAGpmD,KACTumD,EAAMH,EAAGxuD,IACT4uD,EAASF,EAAMF,EAAGte,MAClB2e,EAASF,EAAMH,EAAGre,OAElB2e,EAAML,EAAGrmD,KACT2mD,EAAMN,EAAGzuD,IACTgvD,EAASF,EAAML,EAAGve,MAClB+e,EAASF,EAAMN,EAAGte,OAKxB,OAHiBp3C,KAAKo1D,IAAI,EAAGp1D,KAAKm2D,IAAIN,EAAQI,GAAUj2D,KAAKo1D,IAAIO,EAAKI,IACrD/1D,KAAKo1D,IAAI,EAAGp1D,KAAKm2D,IAAIL,EAAQI,GAAUl2D,KAAKo1D,IAAIQ,EAAKI,GAGzE,EE7HL,MAAMI,GAAoB,sBA8MX,IAAAC,GAAA,UAvMf,WAAAxtE,GAKYyD,KAAAgqE,sBAAuD,IAAIj8C,IAC3D/tB,KAAWiqE,aAAG,CA+LzB,CA7LU,IAAAjmE,CAAK6P,EAAoBwkC,EAA+BnrC,GAC3DlN,KAAKkqE,UAAYr2D,EACjB7T,KAAKy/C,KAAOpH,EACZr4C,KAAKi2B,QAAU/oB,EAEflN,KAAKmqE,wBACR,CAEM,UAAAC,CAAWpyD,EAAkB/N,GAChC,MAAMgD,EAAmC,CACrChD,WAGJ,OAAOjK,KAAKkqE,UAAUG,eAAeryD,EAAU/K,EAClD,CAEM,cAAAq9D,CAAetyD,EAAkB9S,EAAeqlE,GACnDvqE,KAAKwqE,gBAAgBtlE,EAAOqlE,GAC5B,MAAMt9D,EAAmC,CACrCw9D,SAAU,CACNvlE,QACAyW,UAAW,SACX4uD,QAASvqE,KAAK0qE,gBAAgB1yD,EAAU,SAAU9S,EAAOqlE,KAIjE,OAAOvqE,KAAKkqE,UAAUG,eAAeryD,EAAU/K,EAClD,CAEM,cAAA09D,CAAe3yD,EAAkB9S,GACpC,MAAM+H,EAAmC,CACrCw9D,SAAU,CACNvlE,QACAyW,UAAW,SACX4uD,QAAS,KAMjB,OAFAvqE,KAAK4qE,qBAAqB5yD,EAAU/K,EAASw9D,SAAS9uD,UAAWzW,GAE1DlF,KAAKkqE,UAAUG,eAAeryD,EAAU/K,EAClD,CAEM,aAAA49D,CAAc7yD,EAAkB8yD,EAAuBP,GAC1DvqE,KAAKwqE,gBAAgBM,EAAeP,GACpC,MAAMt9D,EAAmC,CACrCw9D,SAAU,CACNvlE,MAAO4lE,EACPnvD,UAAW,SACX4uD,QAASvqE,KAAK0qE,gBAAgB1yD,EAAU,SAAU8yD,EAAeP,KAIzE,OAAOvqE,KAAKkqE,UAAUG,eAAeryD,EAAU/K,EAClD,CAEM,aAAA89D,CAAc/yD,EAAkB8yD,EAAuBP,GAC1D,MAAMt9D,EAAmC,CACrCw9D,SAAU,CACNvlE,MAAO4lE,EACPnvD,UAAW,SACX4uD,QAASvqE,KAAK0qE,gBAAgB1yD,EAAU,SAAU8yD,EAAeP,KAIzE,OAAOvqE,KAAKkqE,UAAUG,eAAeryD,EAAU/K,EAClD,CAEM,gBAAM+9D,CAAWhzD,EAAkBizD,GACtC,MAAMV,EAA6D,GAE7DW,SADsBlrE,KAAKmrE,oBAAoBnzD,IACfozD,WAAW3xD,MAAMgxD,GAAaA,EAASvlE,QAAU+lE,IAevF,OAdIC,GACAA,EAAgBX,QAAQnrE,SAASwK,IAC7B,MAAMyhE,EAAiBrrE,KAAKsrE,kBAAkB1hE,EAAO2hE,YACjDF,IACAzhE,EAAO4B,SAAW6/D,EAAe7/D,UAErC++D,EAAQrqE,KAAK,CACTs8D,KAAM5yD,EAAO4yD,KACbhxD,SAAU5B,EAAO4B,SACjBggE,oBAAqB5hE,EAAO4hE,oBAC5BC,mBAAoB7hE,EAAO6hE,oBACsB,IAGtD3lE,QAAQC,QAAQwkE,EAC1B,CAEM,mBAAAY,CAAoBnzD,GACvB,OAAOhY,KAAKkqE,UAAUwB,YAAY1zD,EACrC,CAEO,eAAA0yD,CAAgB1yD,EAAkB2D,EAAmBmvD,EAAuBP,GAChF,OAAOA,EAAQnjE,KAAKwC,IAChB,MAAM+hE,EAAe,CACjBnP,KAAM5yD,EAAO4yD,KACbhxD,SAAU5B,EAAO4B,SACjB+/D,WAAY78D,GAAMw6D,aAClBsC,oBAAqB5hE,EAAO4hE,oBAC5BC,mBAAoB7hE,EAAO6hE,mBAC3B9vD,aAKJ,OAFA3b,KAAK4qE,qBAAqB5yD,EAAU2D,EAAWmvD,EAAea,GAEvDA,CAAY,GAE1B,CAEO,oBAAAf,CAAqB5yD,EAAkB2D,EAAmBmvD,EAAuBa,SACrF,MAAMC,EAAoB,GAAGd,KAAiB9yD,IAC9C,GAAkB,WAAd2D,EAAwB,CACnB3b,KAAKgqE,sBAAsBj4D,IAAI65D,IAChC5rE,KAAKgqE,sBAAsB3+C,IAAIugD,EAAmB,IAGtB5rE,KAAKgqE,sBAAsBz3C,IAAIq5C,GACvC1rE,KAAK,CACzBqrE,WAAYI,EAAaJ,WACzB//D,SAAUmgE,EAAangE,UAG9B,MAAM,GAAkB,WAAdmQ,EACP,GAAIgwD,EAAc,CACd,IAAIE,EAA2E,QAAjDjgE,EAAA5L,KAAKgqE,sBAAsBz3C,IAAIq5C,UAAkB,IAAAhgE,EAAAA,EAAI,GACnFigE,EAA0BA,EAAwBxpE,QAAQypE,GAAWA,EAAOP,aAAeI,EAAaJ,aACjE,IAAnCM,EAAwBnuE,OACxBsC,KAAKgqE,sBAAsB+B,OAAOH,GAElC5rE,KAAKgqE,sBAAsB3+C,IAAIugD,EAAmBC,EAEzD,MACG7rE,KAAKgqE,sBAAsB+B,OAAOH,EAG7C,CAEO,sBAAAzB,GACJ,IAAInqE,KAAKiqE,YAAT,CAGAjqE,KAAKiqE,aAAc,EAEnB,IACIjqE,KAAKy/C,KAAK7Z,SAASkkC,IAAmB,CAAC/jC,EAAW0G,KAC9C,MAAM4+B,EAAiBrrE,KAAKsrE,kBAAkBvlC,EAAKwlC,YACnD,GAAIF,EACA,IACIA,EAAe7/D,UAClB,CAAC,MAAO9G,GACL1E,KAAKi2B,QAAQ3qB,MAAM,wDAAyD5G,EAC/E,CACJ,GAER,CAAC,MAAOA,GAEL,OADA1E,KAAKi2B,QAAQ3qB,MAAM,6BAA6Bw+D,8CAA8DplE,GACvGoB,QAAQ6H,OAAOjJ,EACzB,CAjBA,CAkBJ,CAEO,iBAAA4mE,CAAkBC,GACtB,IAAIS,EAOJ,MANA,IAAIhsE,KAAKgqE,sBAAsBrtE,UAAUyC,SAAS4L,IAC9C,MAAMQ,EAAWR,EAAUyO,MAAMwyD,GAAQA,EAAIV,aAAeA,IACxD//D,IACAwgE,EAAiBxgE,EACpB,IAEEwgE,CACV,CAEO,eAAAxB,CAAgBC,EAAkBF,GACtC,KAAMA,GAAWA,EAAQ7sE,OAAS,GAC9B,MAAM,IAAImC,MAAM,aAAa4qE,mCAGjCF,EAAQnrE,SAASwK,IACb,IAAKA,EAAO4hE,oBACR,MAAM,IAAI3rE,MAAM,aAAa4qE,6DAEjC,IAAK7gE,EAAO6hE,mBACR,MAAM,IAAI5rE,MAAM,aAAa4qE,4DAEjC,IAAK7gE,EAAO4B,SACR,MAAM,IAAI3L,MAAM,aAAa4qE,0DAChC,GAER,GC3CU,IAAAyB,GAAA,UAxJX,WAAA3vE,GAPiByD,KAA4BmsE,6BAAW,IAChDnsE,KAAQ+mD,SAAqC,GAC7C/mD,KAAeosE,gBAAqC,GACpDpsE,KAAqBqsE,sBAA0C,GAKnErsE,KAAK0Q,UAAY47D,IACpB,CAEM,IAAAtoE,CAAKkJ,GACRlN,KAAKi2B,QAAU/oB,CAClB,CAGM,GAAAqlB,CAAItyB,GACP,OAAOD,KAAK+mD,SAAS9mD,IAAOD,KAAKosE,gBAAgBnsE,EACpD,CAGM,UAAAssE,CAAWtsE,GACd,OAAOD,KAAK+mD,SAAS9mD,EACxB,CAED,QAAWmwD,GACP,OAAOpwD,KAAK+mD,QACf,CAEM,GAAAx7C,CAAInG,GAEP,KADgBpF,KAAKosE,gBAAgBhnE,EAAOsiC,IAAIznC,IAG5C,YADAD,KAAKi2B,QAAQ3qB,MAAM,gCAAgClG,EAAOsiC,IAAIznC,6CAGlE,MAAMusE,EAAmC,WAA1BpnE,EAAOsiC,IAAIuT,WAC1Bj7C,KAAKosE,gBAAgBhnE,EAAOsiC,IAAIznC,IAAMmF,EACtCpF,KAAKqsE,sBAAsBjnE,EAAOsiC,IAAIznC,IAAM,CACxC4iB,OAAO,EACP4pD,WAAYD,GAGhBxsE,KAAK0Q,UAAUtE,QAAQ,WAAYhH,EACtC,CAEM,MAAAugC,CAAOvgC,UACHpF,KAAK+mD,SAAS3hD,EAAOsiC,IAAIznC,WACzBD,KAAKosE,gBAAgBhnE,EAAOsiC,IAAIznC,WAChCD,KAAKqsE,sBAAsBjnE,EAAOsiC,IAAIznC,IAC7CD,KAAK0Q,UAAUtE,QAAQ,aAAchH,EACxC,CAEM,aAAAsnE,CAAc10D,GACjB,MAAM20D,EAAoB3sE,KAAKqsE,sBAAsBr0D,QAEpB,IAAtB20D,IAIXA,EAAkB9pD,OAAQ,EAEtB8pD,EAAkBF,YAClBzsE,KAAK4sE,gBAAgB50D,GAE5B,CAEM,kBAAA60D,CAAmB70D,GACtB,MAAM20D,EAAoB3sE,KAAKqsE,sBAAsBr0D,QAEpB,IAAtB20D,IAIXA,EAAkBF,YAAa,EAE3BE,EAAkB9pD,OAClB7iB,KAAK4sE,gBAAgB50D,GAE5B,CAEM,0BAAA80D,CAA2B90D,EAAkB+0D,QAIf,IAFP/sE,KAAKqsE,sBAAsBr0D,KAMjB,IAAhC+0D,GACA/sE,KAAK4sE,gBAAgB50D,EAE5B,CAEM,OAAAg1D,CAAQ/sE,GACX,OAAO,IAAI6F,SAAQ,CAACC,EAAS4H,KAEzB,IAAIs/D,EACAC,EAEJ,MAAMl5D,EAAU1N,YAAW,KACvB2mE,IACAC,IACAv/D,EAAO,mBAAmB1N,2BAA4BD,KAAKmsE,6CAA6C,GACzGnsE,KAAKmsE,8BAEFjuB,EAAMl+C,KAAK+mD,SAAS9mD,GAC1B,GAAIi+C,EACAjqC,aAAaD,GACbjO,EAAQm4C,OACL,CACH,MAAMivB,EAAU,KACZl5D,aAAaD,GACbi5D,IACAC,GAAW,EAEfD,EAAUjtE,KAAKotE,eAAe7vB,IACtBA,EAAE7V,IAAIznC,KAAOA,IAGjBktE,IACApnE,EAAQw3C,GAAE,IAId2vB,EAAYltE,KAAK0/D,WAAWniB,IACpBA,EAAE7V,IAAIznC,KAAOA,IAGjBktE,IACAx/D,EAAO,mBAAmB1N,0CAA0C,GAE3E,IAER,CAEM,aAAAmtE,CAAc5hE,GACjB,OAAOxL,KAAK0Q,UAAUnF,IAAI,WAAYC,EACzC,CAEM,OAAA6hE,CAAQ7hE,GACX,OAAOxL,KAAK0Q,UAAUnF,IAAI,WAAYC,EACzC,CAEM,SAAAk0D,CAAUl0D,GACb,OAAOxL,KAAK0Q,UAAUnF,IAAI,aAAcC,EAC3C,CAGM,eAAAohE,CAAgB50D,GACfhY,KAAKosE,gBAAgBp0D,KACrBhY,KAAK+mD,SAAS/uC,GAAYhY,KAAKosE,gBAAgBp0D,UACxChY,KAAKosE,gBAAgBp0D,UACrBhY,KAAKqsE,sBAAsBr0D,IAGtChY,KAAK0Q,UAAUtE,QAAQ,WAAYpM,KAAK+mD,SAAS/uC,GACpD,GC9JS,MAAOs1D,GAIjB,WAAA/wE,CAAoByb,EAAkBikB,GAAlBj8B,KAAQgY,SAARA,EAChBhY,KAAKutE,eAAiBtxC,EAAc/2B,KACvC,CAEM,IAAAkrD,GACH,OAAO2Z,GAAgBiB,WAAWhrE,KAAKgY,SAAUhY,KAAKutE,eACzD,CAEM,MAAAlgD,CAAOk9C,GACV,OAAOR,GAAgBc,cAAc7qE,KAAKgY,SAAUhY,KAAKutE,eAAgBhD,EAC5E,CAEM,MAAA5kC,CAAO4kC,GACV,OAAOR,GAAgBgB,cAAc/qE,KAAKgY,SAAUhY,KAAKutE,eAAgBhD,EAC5E,ECjBS,MAAOiD,GAEjB,WAAAjxE,CAAoByb,GAAAhY,KAAQgY,SAARA,CACnB,CAEM,IAAAo4C,GACH,OAAOpwD,KAAKytE,eACf,CAEM,MAAApgD,CAAOnoB,EAAeqlE,GACzB,OAAOR,GAAgBO,eAAetqE,KAAKgY,SAAU9S,EAAOqlE,EAC/D,CAEM,MAAA5kC,CAAOzgC,GACV,OAAO6kE,GAAgBY,eAAe3qE,KAAKgY,SAAU9S,EACxD,CAEM,UAAMuU,CAAKvU,GAEd,aADyBlF,KAAKytE,iBACZh0D,MAAMi0D,GAAQA,EAAIxoE,QAAUA,GACjD,CAEO,mBAAMuoE,GACV,MAAM7pE,EAAsD,GAS5D,aAP4BmmE,GAAgBoB,oBAAoBnrE,KAAKgY,WACvDozD,WAAWhsE,SAASqrE,IAC9B7mE,EAAO1D,KAAK,CACRgF,MAAOulE,EAASvlE,MAChBqlE,QAAS,IAAI+C,GAAgBttE,KAAKgY,SAAUyyD,IAC9C,IAEC7mE,CACV,ECjCS,MAAO+pE,GAIjB,WAAApxE,CAAoByb,GAAAhY,KAAQgY,SAARA,EAChBhY,KAAK4tE,YAAc,IAAIJ,GAAmBx1D,EAC7C,CAED,cAAIozD,GACA,OAAOprE,KAAK4tE,WACf,CAEM,eAAMC,GAET,aAD4B9D,GAAgBoB,oBAAoBnrE,KAAKgY,WAChD/N,OACxB,CAEM,UAAAmgE,CAAWngE,GACd,OAAO8/D,GAAgBK,WAAWpqE,KAAKgY,SAAU/N,EACpD,ECAL,IAAA6jE,GAAe,CAAC7tE,EAAY8D,EAAmC8P,EAAoB3G,EAAqC6gE,EAAyDC,EAAuDC,EAAoD51B,iBACxR,MAAM3nC,EAA8B47D,KAC9B4B,EAAc,KAChB,MAAMC,EAAWF,IACjB,IAAKE,EACD,MAAM,IAAItuE,MAAM,+HAEpB,OAAOsuE,CAAQ,EAGbx0B,EAAM15C,EACNoB,EAAgB0C,EAAQzG,KACxB8wE,EAA6CrqE,EAAQukD,KAC3D,IAAI+lB,EAA2CtqE,EAAQsgD,OACnDiqB,EAAevqE,EAAQmf,IACvBq9C,EAAiBx8D,EAAQmB,MACzBq6C,EAA+B,QAAf3zC,EAAA7H,EAAQ1G,eAAO,IAAAuO,EAAAA,EAAI,GACnC2iE,EAAsBxqE,EAAQ26C,WAC9B8vB,EAAkBzqE,EAAQmgD,MAC1BuqB,EAA4C,QAAlBvzB,EAAAn3C,EAAQ2qE,kBAAU,IAAAxzB,EAAAA,EAAI,GAChDyzB,EAAmB5qE,EAAQ6qE,QAC3BC,EAAiC9qE,EAAQ+qE,qBACzCC,EAA+BhrE,EAAQirE,mBACvCC,EAA8BlrE,EAAQmrE,kBACtCC,EAA2BprE,EAAQqrE,eACnCC,EAA+C,QAArB9Q,EAAAx6D,EAAQurE,qBAAa,IAAA/Q,GAAAA,EAC/CgR,EAAqDxrE,EAAQkJ,SACjE,MAAMuiE,EAAmBzrE,EAAQsV,gBAGjC,IAqBIo2D,EArBAC,EAAsB3rE,EAAQggD,UAG9B4rB,EAAqB5rE,EAAQ6rE,SAG7BC,EAAwB9rE,EAAQ+rE,YAGhCC,EAAqDhsE,EAAQ9E,MAG7D+wE,EAAsBjsE,EAAQksE,WAC9BC,EAAoBnsE,EAAQosE,SAE5BC,EAAmBrsE,EAAQssE,QAE3BC,EAAqBvsE,EAAQwsE,SAC7BC,EAA+BzsE,EAAQ0sE,mBACvCC,EAAqB3sE,EAAQ4sE,SAK7BC,EAA2E,QAApB33C,EAAAl1B,EAAQ8sE,oBAAY,IAAA53C,EAAAA,EAAI,GAG/E63C,EAAc/sE,EAAQgtE,WAEtBC,EAAiEjtE,EAAQktE,kBAE7E,MAAMC,EAAsB,IAAIvD,GAAS1tE,GA8IzC,SAASkxE,EAAW9sB,EAAkDjsC,EAAsE9M,GACxI,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAInqB,GAAuB+G,GACvB,MAAM,IAAIxkD,MAAM,2DAEpB,OAAOgU,EAASs9D,WAAWE,GAAchtB,EAAO,GACjDjsC,EAAS9M,EACf,CAiMD,SAASw4C,EAAWwtB,EAAuBl5D,EAAsE9M,GAC7G,OAAO8lE,GAAM3J,oBAAmB,IACrB5zD,EAASiwC,WAAWutB,GAAcC,IAC1Cl5D,EAAS9M,EACf,CA0WD,SAASimE,EAAe/lE,GACpB,OAAOgmE,EAAY,gBAAiBhmE,EACvC,CAgFD,SAASgmE,EAAYx0E,EAAawO,EAAoBimE,GAClD,IAAKxyB,GAAgBzzC,GACjB,MAAM,IAAI3L,MAAM,+BAGpB,OAAO6Q,EAAUnF,IAAIvO,EAAKwO,EAAUimE,EACvC,CA0WD,SAASC,EAAyBC,GAC9B,MAAMlzB,EAAYgwB,EAAYkD,GAC9B,QAAyB,IAAdlzB,EACP,OAAmCA,EAZpB3hD,QAAmD,CAACC,EAAM60E,KACzE,MAAMxsE,EAAS8mE,GAAY35C,IAAIq/C,GAI/B,OAHIxsE,GACArI,EAAKmD,KAAKkF,EAAOsiC,KAEd3qC,CAAI,GACZ,GAQN,CAED,SAAS80E,UACL,GAAIrC,EACA,OAAOA,EAEX,GAAIjwB,EAASuyB,kBACT,OAAOvyB,EAASuyB,kBAEpB,GAAIvyB,GAAYA,EAASwyB,MAAQxyB,EAASwyB,KAAK1/D,YAC3C,OAAOktC,EAASwyB,KAAK1/D,YAEzB,MAAMxB,EAAOmhE,IACb,GAAInhE,GAAQA,EAAKwI,gBACb,OAAOxI,EAAKwI,gBAIhB,MAAM4sD,EAAa8H,IACnB,GAAI9H,EAAY,CACZ,MAAMj9D,EAAWi9D,EAAWpN,YAAYp/C,MAAMpS,GAAMpH,IAAOoH,EAAEpH,KAC7D,GAAI+I,EACA,OAA2B,UAApBA,EAASqJ,mBAAW,IAAAzG,OAAA,EAAAA,EAAEtO,IAEpC,CAGJ,CAED,SAAS00E,IACL,GAAsB,oBAAX5sE,QAA0BA,OAAOO,UAAYP,OAAOO,SAASqsE,cAAe,CACnF,MAAMnhE,EAAOzL,OAAOO,SAASqsE,cAAc/xE,GAC3C,OAAK4Q,QACD,CAIP,CACJ,CAMD,MAAMwgE,GAAe,CACjB,MAAIpxE,GACA,OAAO05C,CACV,EACD,QAAIr8C,GACA,OAAO+D,CACV,EACD,eAAIgR,GACA,MAAM4zD,EAAa8H,IACbnoE,EAAUisE,IAChB,GAAIjsE,GAAWqgE,EACX,OAAOA,EAAW5zD,YAAYzM,EAErC,EACD,gBAAIqsE,GACA,OAAOp+D,EAASo+D,YACnB,EACD,mBAAIpR,GACA,MAAM73D,EAAWqvC,EAAIpb,UAAUxjB,MAAMzW,GAAMA,EAAEgV,WAAahY,KAAKC,KAC/D,GAAI+I,EACA,OAAOA,EACJ,CACH,MAAMpD,EAAUisE,IAChB,GAAIjsE,EACA,MAAO,CAAEyM,YAAazM,EAE7B,CACJ,EACD,eAAIssE,GACA,OAAOb,GAAaxQ,eACvB,EACD,OAAI39C,GACA,OAAOorD,CACV,EACD,SAAIppE,GACA,OAAOq7D,CACV,EACD,yBAAIlK,GACA,OAAOkZ,CACV,EACD,YAAItiE,GACA,OAAOsiE,CACV,EACD,cAAIU,GACA,MAA+B,QAAxB7B,EAAMppE,cAA0BgrE,OAAc7rE,CACxD,EACD,YAAIgsE,GACA,MAA+B,QAAxB/B,EAAMppE,cAA0BkrE,OAAY/rE,CACtD,EACD,WAAIksE,GACA,OAAOD,CACV,EACD,gBAAIS,GACA,OAAOD,EAAc9xE,MAAK,CAACqzE,EAAIC,IAAOD,EAAG/sD,MAAQgtD,EAAGhtD,OACvD,EACD,QAAIkjC,GACA,OAAO8lB,CACV,EACD,SAAInvE,GACA,OAAO8wE,CACV,EACD,eAAID,GACA,OAAOD,CACV,EACD,aAAI9rB,GACA,OAAO2rB,CACV,EACD,YAAIa,GACA,OAAOD,CACV,EACD,WAAIjzE,GAEA,OAAOkiD,CACV,EACD,UAAI8E,GACA,OAAOgqB,CACV,EACD,aAAIgE,GACA,OAAO9C,EAAU8C,SACpB,EACD,aAAIC,GACA,OAAO/C,EAAU+C,SACpB,EACD,YAAIC,GACA,OAAOhD,EAAUgD,QACpB,EACD,YAAIC,GACA,OAAOjD,EAAUiD,QACpB,EACD,aAAIC,GACA,OAAOjE,CACV,EACD,cAAI9vB,GACA,OAAO6vB,CACV,EACD,UAAImE,GACA,YAA2BvuE,IAApBktE,GAAapxE,EACvB,EACD,SAAI0yE,GACA,OAAOlD,CACV,EACD,WAAIb,GACA,OAAOD,CACV,EACD,YAAIiB,GACA,OAAOD,CACV,EACD,iBAAIiD,GACA,OAAOlB,EAAyB,MACnC,EACD,kBAAImB,GACA,OAAOnB,EAAyB,OACnC,EACD,mBAAIoB,GACA,OAAOpB,EAAyB,QACnC,EACD,oBAAIqB,GACA,OAAOrB,EAAyB,SACnC,EACD,wBAAI5C,GACA,OAAOD,CACV,EACD,cAAIvmD,GACA,GAAIi3B,EAASwyB,KACT,OAAOxyB,EAASwyB,KAAKzpD,WAEzB,MAAMzX,EAAOmhE,IACb,OAAKnhE,EAGEA,EAAKyX,gBAHZ,CAIH,EACD,oBAAI+hC,GACA,GAAI9K,EAASwyB,KACT,OAAOxyB,EAASwyB,KAAK1nB,iBAEzB,MAAMx5C,EAAOmhE,IACb,OAAKnhE,EAGEA,EAAKw5C,sBAHZ,CAIH,EACD,cAAIpP,GACA,OAAOl3C,EAAQk3C,YAAc,UAChC,EACD,cAAI81B,GACA,OAAOD,CACV,EACD,UAAIkC,GACA,GAAsB,oBAAX5tE,QAA0BA,OAAOO,SAExC,OAAOyrE,GAAMzJ,WAAW0J,GAAahtB,OAASj/C,OAAOO,SAAiBstE,SAG7E,EACD,qBAAIhC,GACA,OAAOr0E,OAAOumB,OAAO,CAAE,EAAE6tD,EAC5B,EACD,YAAIkC,GACA,OAAOhC,CACV,EACD,sBAAIT,GACA,OAAOD,CACV,EACD,YAAIG,GACA,OAAOD,CACV,EACDyC,SAvpCJ,SAAkB/6D,EAAsE9M,GACpF,OAAO8lE,GAAM3J,oBAAmB,IACP,cAAjBsI,EACOjqE,QAAQC,QAAQsrE,IAEpBx9D,EAASs/D,SAAS9B,KAC1Bj5D,EAAS9M,EACf,EAipCG8nE,QA/oCJ,SAAiBh7D,EAAsE9M,GACnF,OAAO8lE,GAAM3J,oBAAmB,IACP,WAAjBsI,EACOjqE,QAAQC,QAAQsrE,IAEpBx9D,EAASu/D,QAAQ/B,KACzBj5D,EAAS9M,EACf,EAyoCG+nE,SAvoCJ,SAAkBj7D,EAAsE9M,GACpF,OAAO8lE,GAAM3J,oBAAmB,IACP,cAAjBsI,EACOjqE,QAAQC,QAAQsrE,IAEpBx9D,EAASw/D,SAAShC,KAC1Bj5D,EAAS9M,EACf,EAioCGgoE,gBAhqCJ,SAAyBl7D,EAAsE9M,GAC3F,OAAO8lE,GAAM3J,oBAAmB,IACrB5zD,EAASy/D,gBAAgBjC,KACjCj5D,EAAS9M,EACf,EA6pCGioE,SAhoCJ,SAAkBn7D,EAAsE9M,GACpF,OAAO8lE,GAAM3J,oBAAmB,IACxBoI,EACO/pE,QAAQC,QAAQsrE,IAEpBx9D,EAAS0/D,SAASlC,KAC1Bj5D,EAAS9M,EACf,EA0nCGkoE,OAxnCJ,SAAgBp7D,EAAsE9M,GAClF,OAAO8lE,GAAM3J,oBAAmB,IACvBoI,EAGEh8D,EAAS2/D,OAAOnC,IAFZvrE,QAAQC,QAAQsrE,KAG5Bj5D,EAAS9M,EACf,EAknCGmoE,eAhnCJ,SAAwBr7D,EAAsE9M,GAC1F,OAAO8lE,GAAM3J,oBAAmB,IACrB5zD,EAAS4/D,eAAepC,KAChCj5D,EAAS9M,EACf,EA6mCG44C,MA7qCJ,SAAe9rC,EAAsE9M,GACjF,OAAO8lE,GAAM3J,oBAAmB,IACxB+G,EACO1oE,QAAQC,QAAQsrE,IAEpBx9D,EAASqwC,MAAMmtB,KACvBj5D,EAAS9M,EACf,EAuqCG24C,SAvrCJ,SAAkB7rC,EAAsE9M,GACpF,OAAO8lE,GAAM3J,oBAAmB,IACxB+G,EACO1oE,QAAQC,QAAQsrE,IAEpBx9D,EAASowC,SAASotB,KAC1Bj5D,EAAS9M,EACf,EAirCG6lE,aACAuC,SA9vCJ,SAAkBC,EAAkBv7D,EAAsE9M,GACtG,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAInqB,GAAuBq2B,GACvB,MAAM,IAAI9zE,MAAM,6CAEpB,OAAI8zE,IAAapT,EACNz6D,QAAQC,QAAQsrE,IAEpBx9D,EAAS6/D,SAASrC,GAAcsC,EAAS,GACjDv7D,EAAS9M,EACf,EAqvCGsoE,SAt0CJ,SAAkBjW,EAA6CvlD,EAAsE9M,GACjI,OAAO8lE,GAAM3J,oBAAmB,KAC5B,IAAK9J,GAAuC,IAA9B/gE,OAAOC,KAAK8gE,GAAOjgE,QAAgBd,OAAOC,KAAK8gE,GAAOjoC,OAAO14B,IAASA,IAChF,MAAM,IAAI6C,MAAM,4BAA8BgH,KAAKC,UAAU62D,IAEjE,GAAIA,QAAyBx5D,IAAhBw5D,EAAMzZ,MAAqB,CACpC,GAA2B,kBAAhByZ,EAAMzZ,MACb,MAAM,IAAIrkD,MAAM,+EACO,IAAhB89D,EAAMzZ,OAEb74C,QAAQ6M,KAAK,mCAEpB,CACD,GAAIylD,QAA0Bx5D,IAAjBw5D,EAAM7B,QAAgD,kBAAjB6B,EAAM7B,OACpD,MAAM,IAAIj8D,MAAM,oDAEpB,IAAK,MAAM0hC,IAAQ,CAAC,YAAa,YAAa,WAAY,YAAa,CACnE,MAAMsyC,EAAalW,EACbrhE,EAAQu3E,EAAWtyC,GACzB,GAAIA,KAAQo8B,EAAO,CACf,GAAIrgB,GAAuBhhD,GAAQ,QACxBu3E,EAAWtyC,GAClB,QACH,CACD,IAAKuyC,GAAcD,EAAWtyC,IAC1B,MAAM,IAAI1hC,MAAM,IAAI0hC,sBAE3B,CACJ,CACD,OAAO1tB,EAAS+/D,SAASvC,GAAc1T,EAAM,GAC9CvlD,EAAS9M,EACf,EAwyCGyoE,SA1xCJ,SAAkBC,EAA2B57D,EAAsE9M,GAC/G,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAqB,iBAAVuM,GACP,GAAc,WAAVA,EACA,MAAM,IAAIn0E,MAAM,4CAEjB,GAAqB,kBAAVm0E,EACd,MAAM,IAAIn0E,MAAM,kDAEpB,OAAOgU,EAASkgE,SAAS1C,GAAc2C,EAAM,GAC9C57D,EAAS9M,EACf,EAgxCG2oE,aAvyCJ,SAAsBC,EAAiD97D,EAAsE9M,GACzI,OAAO8lE,GAAM3J,oBACT,IAAM5zD,EAASogE,aAAa5C,GAAc6C,IAC1C97D,EACA9M,EAEP,EAkyCG6oE,WAhyCJ,WACI,OAAOtgE,EAASsgE,WAAW9C,GAC9B,EA+xCG+C,mBAhxCJ,SAA4BC,EAAuDj8D,EAAsE9M,GACrJ,OAAO8lE,GAAM3J,oBAAmB,KAC5B,IAAK4M,GAAez3E,OAAOC,KAAKw3E,GAAa3+C,OAAOp5B,QAAoB6H,IAAV7H,IAC1D,MAAM,IAAIuD,MAAM,gEAEpB,OAAOgU,EAASugE,mBAAmB/C,GAAcgD,EAAY,GAC9Dj8D,EAAS9M,EACf,EA0wCGgpE,mBAxwCJ,WACI,OAAOzgE,EAASygE,mBAAmBjD,GACtC,EAuwCGkD,SA31CJ,SAAkBC,EAAgBC,EAA2HnpE,GACzJ,GAAiC,mBAAtBmpE,EACP,OAAOrD,GAAM3J,oBAAmB,KAC5B,GAAIiN,GAAwBF,GACxB,MAAM,IAAI30E,MAAM,2CAEpB,OAAOgU,EAAS0gE,SAASlD,GAAcmD,EAAO,GAC/CC,EAAmBnpE,GAE1B,GAAIopE,GAAwBF,GACxB,MAAM,IAAI30E,MAAM,2CAEpB,OAAOgU,EAAS0gE,SAASlD,GAAcmD,EAAQC,EAClD,EA+0CGE,eAztCJ,SAAwBC,EAAiDx8D,EAAsE9M,GAC3I,OAAO8lE,GAAM3J,oBAAmB,KAC5B,QAA0B,IAAfmN,GAAiE,IAAnCh4E,OAAOC,KAAK+3E,GAAYl3E,OAC7D,MAAM,IAAImC,MAAM,iCAEpB,GAAI60E,GAAwBE,EAAWC,UACnC,MAAM,IAAIh1E,MAAM,6CAEpB,GAAI60E,GAAwBE,EAAWE,aACnC,MAAM,IAAIj1E,MAAM,gDAEpB,OAAOgU,EAAS8gE,eAAetD,GAAcuD,EAAW,GACzDx8D,EAAS9M,EACf,EA6sCGypE,kBA3sCJ,SAA2BF,EAAkBz8D,EAAsE9M,GAC/G,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAIiN,GAAwBG,GACxB,MAAM,IAAIh1E,MAAM,6CAEpB,OAAOgU,EAASkhE,kBAAkB1D,GAAcwD,EAAS,GAC1Dz8D,EAAS9M,EACf,EAqsCGw4C,aACAkxB,KAAM,IAAMlxB,GAAW,GACvBmxB,KAAM,IAAMnxB,GAAW,GACvBoxB,OAzhCJptE,eAAsBqtE,GAIlB,OAHIA,GAMR,SAAiCA,GAC7B,GAAuB,iBAAZA,EACP,MAAMt1E,MAAM,mDAEhB,IAAKs1E,EAAQ1M,WAAa0M,EAAQ7M,YAC9B,MAAMzoE,MAAM,iDAEnB,CAZOu1E,CAAwBD,GAErBthE,EAASqhE,OAAO7D,GAAc8D,EACxC,EAqhCGpnE,MAj3CJ,SAAesnE,EAAoH/pE,GAC/H,YAA2B,IAAhB+pE,GAAsD,mBAAhBA,EACtCjE,GAAM3J,oBAAmB,KAC5B,IAAKxnE,EACD,MAAM,IAAIJ,MAAM,iCAEpB,OAAOgU,EAAS9F,MAAMsjE,GAAa,GACpCgE,EAAa/pE,GAETuI,EAAS9F,MAAMsjE,GAAcgE,EAE3C,EAu2CGC,KA3nCJ,SAAc3wE,EAA2DgtE,EAAkGv5D,EAAsE9M,GAC7O,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAInqB,GAAuB34C,GACvB,MAAM,IAAI9E,MAAM,sCAAwD,iBAAX8E,EAAsBA,EAASkC,KAAKC,UAAUnC,MAG/G,GAAsB,iBAAXA,EAAqB,CAC5B,MAAMu5C,EAAMguB,GAAY35C,IAAI5tB,GAC5B,IAAKu5C,EACD,MAAM,IAAIr+C,MAAM,+DAA+D8E,KAEnFA,EAASu5C,EAAIxW,GAChB,CAOD,MANyB,iBAAdiqC,IACPA,EAAY,CACRA,YACA4D,WAAW,IAGZ1hE,EAASyhE,KAAKjE,GAAc1sE,EAAQgtE,EAAU,GACtDv5D,EAAS9M,EACf,EAumCGkqE,WA7gCJ,SAAoBC,GAChB,OAAO5hE,EAAS2hE,WAAWnE,GAAcoE,EAC5C,EA4gCGC,WA1gCJ,WACI,OAAO7hE,EAAS6hE,WAAWrE,GAC9B,EAygCGjxB,cAvgCJ,SAAuB/iD,EAAc+a,EAAsE9M,GACvG,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAInqB,GAAuBjgD,GACvB,MAAM,IAAIwC,MAAM,4CAGpB,OAAOgU,EAASusC,cAAcixB,GAAch0E,GAAS,EAAM,GAC5D+a,EAAS9M,EACf,EAggCGqqE,KA9/BJ,SAAcv9D,EAAsE9M,GAChF,OAAO8lE,GAAM3J,oBAAmB,IACrB5zD,EAAS8hE,KAAKtE,KACtBj5D,EAAS9M,EACf,EA2/BGsqE,OAz/BJ,SAAgBx9D,EAAsE9M,GAClF,OAAO8lE,GAAM3J,oBAAmB,IACrB5zD,EAAS+hE,OAAOvE,KACxBj5D,EAAS9M,EACf,EAs/BGuqE,QAp/BJ,SAAiBz9D,EAAkC9M,GAC/C,OAAO8lE,GAAM3J,oBAAmB,IACrB5zD,EAASgiE,QAAQxE,KACzBj5D,EAAS9M,EACf,EAi/BGwqE,QA/+BJ,SAAiBC,EAAqB39D,EAAsE9M,GACxG,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAIiN,GAAwBqB,GACxB,MAAM,IAAIl2E,MAAM,6CAEpB,OAAOgU,EAASiiE,QAAQzE,GAAc0E,EAAY,GACnD39D,EAAS9M,EACf,EAy+BGw2C,cAv+BJ,SAAuBpD,EAAoBtmC,EAAsE9M,GAC7G,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAIiN,GAAwBh2B,GACxB,MAAM,IAAI7+C,MAAM,2CAEpB,OAAOgU,EAASiuC,cAAcuvB,GAAc3yB,EAAW,GACxDtmC,EAAS9M,EACf,EAi+BG0qE,cAt9BJluE,eAA6BmuE,GACzB,GAAIvB,GAAwBuB,GACxB,MAAM,IAAIp2E,MAAM,IAAIo2E,oCAExB,OAAOpiE,EAASmiE,cAAc3E,GAAc4E,EAC/C,EAk9BGC,cAh9BJpuE,iBACI,OAAO+L,EAASqiE,cAAc7E,GACjC,EA+8BG8E,UA/mCJ,SAAmBC,EAAwDC,EAAsDj+D,EAAsE9M,GACnM,OAAO8lE,GAAM3J,oBAAmB,WAC5B,MAAM56B,EAAe,oHACrB,GAAIyQ,GAAuB84B,GAAM,CAC7B,MAAME,EAAS,GAAGzpC,KAA+B,iBAARupC,EAAmBA,EAAMvvE,KAAKC,UAAUsvE,KACjF,MAAM,IAAIv2E,MAAMy2E,EACnB,CAED,IAAIC,EACJ,GAAmB,iBAARH,GAEP,GADAG,EAAqC,QAAtB3qE,EAAAsgE,GAAY35C,IAAI6jD,UAAM,IAAAxqE,OAAA,EAAAA,EAAA87B,IACjC4V,GAAuBi5B,GAAe,CACtC,MAAMD,EAAS,GAAGzpC,KAAwC,iBAAjB0pC,EAA4BA,EAAe1vE,KAAKC,UAAUyvE,KACnG,MAAM,IAAI12E,MAAMy2E,EACnB,MACE,IAAKh5B,GAAuB84B,EAAIn2E,IAGnC,MAAM,IAAIJ,MAAMgtC,GAFhB0pC,EAAeH,CAGlB,CACD,MAAMI,EAAwD,CAAA,EAU9D,OATKl5B,GAAuB+4B,KACL,iBAARA,EACPG,EAAcrqE,MAAQkqE,GAEtBG,EAAcC,SAAWJ,EAAII,SAC7BD,EAAcrqE,MAAQkqE,EAAIlqE,QAI3B0H,EAASsiE,UAAU9E,GAAckF,EAAcC,EAAc,GACrEp+D,EAAS9M,EACf,EAglCGorE,UA9kCJ,SAAmBL,EAA8C,GAAIj+D,EAAsE9M,GACvI,OAAO8lE,GAAM3J,oBAAmB,KAC5B,MAAMkP,EAAgC,CAAA,EA2BtC,YAzB4BxyE,IAEPkyE,EAFRlgB,YAGqB,iBAAnBkgB,EAAIlgB,WACXwgB,EAAYxgB,WAAakgB,EAAIlgB,WACrB7Y,GAAuB+4B,EAAIlgB,WAAWl2D,MAC9C02E,EAAYxgB,WAAakgB,EAAIlgB,WAAWl2D,IAEvCq9C,GAAuB+4B,EAAIjgB,qBAC5BugB,EAAYvgB,kBAAoBigB,EAAIjgB,mBAEnC9Y,GAAuB+4B,EAAIxrB,SAC5B8rB,EAAY9rB,MAAQwrB,EAAIxrB,OAEvBvN,GAAuB+4B,EAAIvrB,UAC5B6rB,EAAY7rB,OAASurB,EAAIvrB,SAGxBxN,GAAuB+4B,EAAIhyB,UAC5BsyB,EAAYtyB,OAASgyB,EAAIhyB,QAG5B/G,GAAuB+4B,EAAIO,iBAC5BD,EAAYC,cAAgBP,EAAIO,eAE7B/iE,EAAS6iE,UAAUrF,GAAcsF,EAAY,GACrDv+D,EAAS9M,EACf,EAgjCGurE,oBAn+BJ,SAA6BC,EAA+B1+D,EAAsE9M,GAC9H,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAoC,kBAAzBqP,EACP,MAAM,IAAIj3E,MAAM,qDAEpB,OAAOgU,EAASgjE,oBAAoBxF,GAAcyF,EAAqB,GACxE1+D,EAAS9M,EACf,EA69BGyrE,UAh9BJ,SAAmBvvE,GACf,OAAOqM,EAASkjE,UAAU1F,GAAc7pE,EAC3C,EA+8BGwvE,cA78BJ,SAAuBxvE,GACnB,OAAOqM,EAASmjE,cAAc3F,GAAapxE,GAAIuH,EAClD,EA48BGyvE,cA18BJ,SAAuBC,GACnB,OAAOrjE,EAASojE,cAAc5F,GAAapxE,GAAIi3E,IAAW,EAC7D,EAy8BGC,cA37BJ,SAAuBpG,EAAoB34D,EAAsE9M,GAC7G,OAAO8lE,GAAM3J,oBAA6D,KACtE,GAAIhkD,MAAMstD,GACN,MAAM,IAAIlxE,MAAM,8BAEpB,OAAOgU,EAASsjE,cAAc9F,GAAcN,EAAW,GACxD34D,EAAS9M,EACf,EAq7BG8rE,OAx8BJ,SAAgBh/D,EAAsE9M,GAClF,OAAO8lE,GAAM3J,oBAA6D,IAC/D5zD,EAASujE,OAAO/F,KACxBj5D,EAAS9M,EACf,EAq8BG+rE,QAn8BJ,SAAiBj/D,EAAsE9M,GACnF,OAAO8lE,GAAM3J,oBAA6D,IAC/D5zD,EAASwjE,QAAQhG,KACzBj5D,EAAS9M,EACf,EAg8BGgsE,aAr7BJ,WACI,OAAOzjE,EAASyjE,aAAajG,GAChC,EAo7BGkG,QAl7BJ,SAAiBC,GACb,OAAO3jE,EAAS0jE,QAAQlG,GAAcmG,EACzC,EAi7BGC,MA/6BJ,SAAeC,EAA2BpvB,GACtC,MAAMqvB,EAA6B,CAC/BC,aAAa,EACbtvB,KAAM,QAWV,MAR+B,kBAApBovB,IACPC,EAAaC,YAAcF,QAGX,IAATpvB,IACPqvB,EAAarvB,KAAOA,GAGjBz0C,EAAS4jE,MAAMpG,GAAcsG,EACvC,EAi6BGE,SA/5BJ,SAAkBH,GACd,MAAMC,EAAgC,CAClCC,aAAa,GAOjB,MAJ+B,kBAApBF,IACPC,EAAaC,YAAcF,GAGxB7jE,EAASgkE,SAASxG,GAAcsG,EAC1C,EAs5BGG,UAzxCJ,SAAmBlI,EAAmBx3D,EAAsE9M,GACxG,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAwB,kBAAbmI,EACP,MAAM,IAAI/vE,MAAM,yCAEpB,OAAOgU,EAASikE,UAAUzG,GAAczB,EAAS,GAClDx3D,EAAS9M,EACf,EAmxCGysE,sBAjxCJ,SAA+BtH,GAC3B,GAAkC,kBAAvBA,EACP,MAAM,IAAI5wE,MAAM,mDAEpB,OAAOgU,EAASkkE,sBAAsB1G,GAAcZ,EACvD,EA6wCGuH,IA3wCJ,WACI,OAAOnkE,EAASmkE,IAAI3G,GACvB,EA0wCG4G,MAxwCJ,WACI,OAAOpkE,EAASokE,MAAM5G,GACzB,EAuwCG6G,MAx5BJ,SAAeC,GACX,OAAOtkE,EAASqkE,MAAM7G,GAAc8G,EACvC,EAu5BGC,WAr5BJ,SAAoBC,GAChB,OAAOxkE,EAASukE,WAAW/G,GAAcgH,EAC5C,EAo5BGC,MAh4BJ,SAAerH,GACX,OAAOp9D,EAASykE,MAAMjH,GAAcJ,EACvC,EA+3BGsH,QAn5BJ,SAAiBC,GACb,OAAO,IAAI1yE,SAAQ,CAACC,EAAS4H,KACzB,MAAM8qE,EAAiBlH,GACnB,CAACrzB,EAA+Cw6B,EAA0CC,KAClF14E,IAAOi+C,EAAIj+C,KACXw4E,IACA1yE,EAAQsrE,IACX,IAGTx9D,EAAS0kE,QAAQlH,GAAcmH,GAC1Bh2E,OAAOkC,IACJ+zE,IACA9qE,EAAOjJ,EAAE,GACX,GAEb,EAo4BGmjC,QA93BJ,SAAiB+wC,GACb,OAAO/kE,EAASg0B,QAAQwpC,GAAcuH,EACzC,EA63BGC,OA1nBJ,WACI,OAAOhlE,EAASglE,OAAOxH,GAC1B,EAynBGyH,UAvnBJ,WACI,OAAOjlE,EAASilE,UAAUzH,GAC7B,EAsnBG0H,SA73BJ,SAAkB71D,EAAa81D,GAC3B,OAAOnlE,EAASklE,SAAS1H,GAAcnuD,EAAK81D,EAC/C,EA43BGC,UA13BJ,SAAmBhsE,GACf,OAAO4G,EAASqlE,gBAAgB7H,GAAcpkE,EACjD,EAy3BG4wD,iBAv3BJ,WACI,OAAOhqD,EAASslE,uBAAuB9H,GAC1C,EAs3BG+H,oBAp3BJ,WACI,OAAOvlE,EAASulE,oBAAoB/H,GACvC,EAm3BGgI,KAj3BJ,SAAcL,GACV,OAAOnlE,EAASwlE,KAAKhI,GAAc2H,EACtC,EAg3BGv/C,MA92BJ3xB,eAAqBykD,GACjB,OAAO14C,EAAS4lB,MAAM43C,GAAc9kB,EACvC,EA62BG+sB,YA32BJxxE,eAA2BoK,GACvB,IAAKA,EACD,MAAM,IAAIrS,MAAM,4BAGpB,GAAoB,iBAATqS,EACP,MAAM,IAAIrS,MAAM,wCAIpB,aADuBgU,EAASylE,YAAYjI,GAAcn/D,IAC1CtO,MACnB,EAi2BG21E,WAAYzxE,gBAER,OAAc,iBADKomE,IAAcsL,uBAAuB,CAAE/6B,UAAW,CAAC9E,MAC1D,UAAE,IAAA/tC,OAAA,EAAAA,EAAE6tE,OAAO,EAE3BC,UA/nBJ,SAAmBC,GACf,OAAO9lE,EAAS6lE,UAAUrI,GAAcsI,EAC3C,EA8nBGC,WA5nBJ,SAAuBC,GACnB,IAAIA,aAAA,EAAAA,EAAeC,gBAAiBr2D,MAAMo2D,aAAa,EAAbA,EAAeC,eACrD,MAAM,IAAIj6E,MAAM,kCAEpB,IAAIg6E,eAAAA,EAAeE,YAAiD,kBAA7BF,aAAA,EAAAA,EAAeE,WAClD,MAAM,IAAIl6E,MAAM,+BAEpB,OAAOgU,EAAS+lE,WAAWvI,GAAcwI,EAC5C,EAsnBGG,QA11BJ,SAAiBxuE,GACb,IAAKyzC,GAAgBzzC,GACjB,MAAM,IAAI3L,MAAM,iCAKpB,YAHWsE,IAAPlE,GACAuL,EAAS6lE,IAEN3gE,EAAUnF,IAAI,UAAWC,EACnC,EAm1BGyuE,aAj1BJ,SAAsBzuE,GAClB,OAAOgmE,EAAY,eAAgBhmE,EACtC,EAg1BG0uE,eAp2BJ,SAAwB1uE,GACpB,IAAKyzC,GAAgBzzC,GACjB,MAAM,IAAI3L,MAAM,iCAGpB,OADA2L,EAAS6lE,GAAansE,MAAOmsE,IACtBG,EAAY,iBAAkBhmE,EACxC,EA+1BG2uE,mBA/0BJ,SAA4B3uE,GACxB,OAAOgmE,EAAY,qBAAsBhmE,EAC5C,EA80BG4uE,qBA50BJ,SAA8B5uE,GAC1B,OAAOgmE,EAAY,uBAAwBhmE,EAC9C,EA20BG6uE,qBAz0BJ,SAA8B7uE,GAC1B,OAAOgmE,EAAY,uBAAwBhmE,EAC9C,EAw0BG8uE,YAt0BJ,SAAqB9uE,GACjB,IAAKyzC,GAAgBzzC,GACjB,MAAM,IAAI3L,MAAM,iCAKpB,OAHIgwE,GACArkE,EAAS6lE,IAEN3gE,EAAUnF,IAAI,YAAaC,EACrC,EA+zBG+uE,WA7zBJ,SAAoB/uE,GAChB,IAAKyzC,GAAgBzzC,GACjB,MAAM,IAAI3L,MAAM,iCAKpB,OAHKgwE,GACDrkE,EAAS6lE,IAEN3gE,EAAUnF,IAAI,WAAYC,EACpC,EAszBGgvE,YA5yBJ,SAAqBhvE,GACjB,MAAqB,cAAjBukE,EACOyB,EAAY,YAAahmE,EAAU,CAAC6lE,KAEpCG,EAAY,YAAahmE,EAEvC,EAuyBGivE,YArzBJ,SAAqBjvE,GACjB,MAAqB,cAAjBukE,EACOyB,EAAY,YAAahmE,EAAU,CAAC6lE,KAEpCG,EAAY,YAAahmE,EAEvC,EAgzBGkvE,SAtyBJ,SAAkBlvE,GACd,MAAqB,WAAjBukE,EACOyB,EAAY,SAAUhmE,EAAU,CAAC6lE,KAEjCG,EAAY,SAAUhmE,EAEpC,EAiyBGstD,WA/xBJ,SAAoBttD,GAChB,OAAOgmE,EAAY,WAAYhmE,EAClC,EA8xBG81C,WA5xBJ,SAAoB91C,GAChB,OAAOgmE,EAAY,WAAYhmE,EAClC,EA2xBGmvE,oBAzxBJ,SAA6BnvE,GACzB,OAAOgmE,EAAY,qBAAsBhmE,EAC5C,EAwxBGovE,iBAtxBJ,SAA0BpvE,GACtB,OAAOgmE,EAAY,kBAAmBhmE,EACzC,EAqxBGqvE,iBAnxBJ,SAA0BrvE,GACtB,OAAOgmE,EAAY,eAAgBhmE,EACtC,EAkxBGsvE,gBAhxBJ,SAAyBtvE,GACrB,OAAOgmE,EAAY,iBAAkBhmE,EACxC,EA+wBGqmD,oBArwBJ,SAA6BrmD,GACzB,OAAOgmE,EAAY,sBAAuBhmE,EAC7C,EAowBGuvE,eA9wBJ,SAAwBvvE,GACpB,OAAOgmE,EAAY,gBAAiBhmE,EACvC,EA6wBGwvE,gBA3wBJ,SAAyBxvE,GACrB,OAAOgmE,EAAY,iBAAkBhmE,EACxC,EA0wBG+lE,iBACA0J,iBAjwBJ,SAA0BzvE,GACtB,OAAOgmE,EAAY,kBAAmBhmE,EACzC,EAgwBG0vE,iBA9vBJ,SAA0B1vE,GACtB,OAAOgmE,EAAY,kBAAmBhmE,EACzC,EA6vBG2vE,sBAvvBJ,SAA+B3vE,GAC3B,OAAOgmE,EAAY,wBAAyBhmE,EAC/C,EAsvBG4vE,6BAxwBJ,SAAsC5vE,GAClC,OAAOgmE,EAAY,gCAAiChmE,EACvD,EAuwBG6vE,UA9uBJ,SAAmB7vE,GACf,IAAKyzC,GAAgBzzC,GACjB,MAAM,IAAI3L,MAAM,+BAYpB,OAAOgU,EAASwnE,WARgB,CAACjjE,EAAqB9M,EAAmBi6D,KACrE,MAAMr2D,EAAU1D,EAAS+5D,IACrBr2D,eAAAA,EAAS1B,MACT0B,EAAQ1B,KAAK4K,GAAS5V,MAAM8I,GAE5B8M,GACH,GAEmCi5D,GAC3C,EAguBGiK,aA9tBJ,SAAsB9vE,GAClB,IAAKyzC,GAAgBzzC,GACjB,MAAM,IAAI3L,MAAM,+BAYpB,OAAOgU,EAASynE,cARuB,CAACljE,EAAqB9M,EAAmBi6D,KAC5E,MAAMr2D,EAAU1D,EAAS+5D,IACrBr2D,eAAAA,EAAS1B,MACT0B,EAAQ1B,KAAK4K,GAAS5V,MAAM8I,GAE5B8M,GACH,GAEsCi5D,GAC9C,EAgtBGkK,oBA7rBJ,SAA6B/vE,GACzB,OAAOgmE,EAAY,sBAAuBhmE,EAC7C,EA4rBGgwE,2BA1rBJ,SAAoChwE,GAChC,OAAOgmE,EAAY,2BAA4BhmE,EAClD,EAyrBGiwE,oBAvrBJ,SAA6BjwE,GACzB,OAAOgmE,EAAY,qBAAsBhmE,EAC5C,EAsrBGkwE,iBAprBJ,SAA0BlwE,GACtB,OAAOgmE,EAAY,kBAAmBhmE,EACzC,EAmrBGmwE,aAltBJ,SAAsBnwE,GAClB,IAAKyzC,GAAgBzzC,GACjB,MAAM,IAAI3L,MAAM,+BAYpB,OAAOgU,EAAS8nE,cARc,CAACvjE,EAAqB9M,EAAmBi6D,EAAqBx/B,KACxF,MAAM72B,EAAU1D,EAASu6B,IACrB72B,eAAAA,EAAS1B,MACT0B,EAAQ1B,KAAK4K,GAAS5V,MAAM8I,GAE5B8M,GACH,GAEsCi5D,GAC9C,EAosBGuK,6BA5vBJ,SAAsCpwE,GAClC,IAAKyzC,GAAgBzzC,GACjB,MAAM,IAAI3L,MAAM,+BAEpB,OAAO2xE,EAAY,+BAAgChmE,EACtD,EAyvBG,QAAIqwE,GACA,OA5WR,WACI,MAAMC,EAAa5P,GAAY9b,KAC/B,MAA4B,QAAxBge,EAAMppE,cACC,GAEEpI,OAAOC,KAAKi/E,GAAYh/E,QAAmB,CAACC,EAAMmhD,KAC3D,MAAM94C,EAAwB02E,EAAW59B,GAQzC,OAPI94C,GACGA,EAAOsiC,IAAIuoC,iBACsB,IAA1B7qE,EAAOsiC,IAAIuoC,iBACiB,IAA5BoB,GAAapB,YACpB7qE,EAAOsiC,IAAIuoC,aAAeoB,GAAapB,YAC1ClzE,EAAKmD,KAAKkF,EAAOsiC,KAEd3qC,CAAI,GACZ,IACS+B,MAAK,CAACi9E,EAAIC,KAClB,GAAID,EAAG5L,WAAa6L,EAAG7L,SAAU,CAC7B,IAAqB,IAAjB4L,EAAG5L,SACH,OAAO99B,OAAOvpB,iBAElB,IAAqB,IAAjBkzD,EAAG7L,SACH,OAAO99B,OAAO4pC,gBAErB,CACD,OAAOF,EAAG5L,SAAW6L,EAAG7L,QAAQ,GAEvC,CAiVc+L,EACV,EAED,sBAAIlN,GACA,OAAOD,CACV,EAED,iBAAIO,GACA,OAAOD,CACV,EAGD8M,OAAM,IACKr2E,QAAQC,QAAQuoE,GAG3B8N,SAAQ,IACGt2E,QAAQC,QAAQw6D,GAG3B/c,UAAS,IACE19C,QAAQC,QAAQsoE,GAG3B9M,WAAU,IACCz7D,QAAQC,QAAQw5C,GAG3B,UAAAW,CAAW7iD,GACP,GAAIigD,GAAuBjgD,GACvB,MAAM,IAAIwC,MAAM,6FAGpB,OAAOgU,EAASusC,cAAcixB,GAAch0E,GAAS,EACxD,EAEDg/E,WAAU,IACarO,IACDsO,cAAcr8E,GAGpCs8E,SAAQ,CAAC1xB,EAAgBC,IACdqmB,EAAW,CAAEtmB,QAAOC,WAG/B0xB,OAAM,CAAC7hE,EAAcoI,IACVouD,EAAW,CAAEx2D,MAAKoI,SAG7B,qBAAM05D,SACF,MAAMC,EAAcnN,EAAkBoN,iBACtC,GAAKD,EAGL,OAAqC,QAA9B9wE,EAAAsgE,GAAY9b,KAAKssB,UAAa,IAAA9wE,OAAA,EAAAA,EAAA87B,GACxC,EAED5/B,gBAAqB,SACVlL,OAAOC,KAAKqvE,GAAY9b,MAC1BhpD,KAAKpK,GAAQkvE,GAAY9b,KAAKpzD,GAAK0qC,MACnCrlC,QAAQk7C,GACaA,EAAEtwC,SAAiB0vE,mBACjB18E,IAIhC28E,YAAct/E,GACH4wE,IAAczwE,KAAKH,EAAM2C,GAGpC48E,aAAc,IACH3O,IAActwD,MAAM3d,IAoDnC,MAAO,CACHynC,IAAK2pC,GACLyL,OA9CyB,CACzBC,aAnuBJ,SAAsBnoD,GAClB05C,EAAO15C,EAAQ1R,IACfq9C,EAAS3rC,EAAQ1vB,MACjBq6C,EAAW3qB,EAAQv3B,SAAW,GAC9BgxE,EAAUz5C,EAAQyvB,OAClBkqB,EAAc35C,EAAQ8pB,WACtB8vB,EAAS55C,EAAQsvB,MACjBuqB,EAAc75C,EAAQ85C,YAAc,GACpCC,EAAW/5C,EAAQg6C,QACnBC,EAAwBj6C,EAAQk6C,qBAChCC,EAAsBn6C,EAAQo6C,mBAC9BC,EAAqBr6C,EAAQs6C,kBAC7BC,EAAkBv6C,EAAQw6C,eAC1BC,EAAiBz6C,EAAQ06C,cACzBC,EAAY36C,EAAQ3nB,SACpByiE,EAAa96C,EAAQmvB,UACrB4rB,EAAY/6C,EAAQg7C,SACpBC,EAAej7C,EAAQk7C,YACvBC,EAAen7C,EAAQ31B,MACvB+wE,EAAcp7C,EAAQq7C,WACtBG,EAAWx7C,EAAQy7C,QACnBC,EAAY17C,EAAQ27C,SACpBC,EAAsB57C,EAAQ67C,mBAC9BC,EAAY97C,EAAQ+7C,SAGpBG,EAAcl8C,EAAQm8C,WACtBC,EAAqBp8C,EAAQq8C,iBAChC,EAwsBG+L,kBAvqBJ,gBACe74E,IAAPlE,IAGJyQ,EAAUtE,QAAQ,UAAWilE,IAC7BpxE,OAAKkE,EACR,EAkqBG84E,wBApnBJn1E,eAAuC7I,GACrB,cAAVA,EACA4wE,GAAe,EACE,aAAV5wE,EACP4wE,GAAe,EAEfE,EAAe9wE,QAEb4U,EAASqpE,SACfxsE,EAAUtE,QAAQnN,EAAOoyE,GAC5B,EA2mBG8L,mBAxsBJ,SAA4BxJ,GACxBpT,EAASoT,EACT9/D,EAASqpE,SACJE,SAAQ,KACL1sE,EAAUtE,QAAQ,iBAAkBunE,EAAUtC,GAAa,GAEtE,EAmsBGgM,wBA5rBJ,SAAiCt5B,GACzBA,IAAc2rB,IAGlBA,EAAa3rB,EACbrzC,EAAUtE,QAAQ,qBAAsBilE,IAC3C,EAurBGiM,iBAlsBJ,SAA0B9I,GACtBlG,EAAOkG,EACP9jE,EAAUtE,QAAQ,eAAgBooE,EAAQnD,GAC7C,EAgsBGkM,4BAtrBJ,SAAqCtwE,GACjCsiE,EAAYtiE,EACZyD,EAAUtE,QAAQ,mBAAoBilE,GACzC,EAorBGmM,qBAlrBJ,SAA8BngF,GAC1BkiD,EAAWliD,EACXqT,EAAUtE,QAAQ,kBAAmBmzC,EAAU8xB,GAClD,EAgrBGoM,2BA9mBJ,SAAoClN,GAChCD,EAAYC,EACZ7/D,EAAUtE,QAAQ,eAAgBilE,GACrC,EA4mBGqM,oBA1mBJ,SAA6Br5B,GACrBgqB,EAAQ1zD,MAAQ0pC,EAAO1pC,KAAO0zD,EAAQtrD,OAASshC,EAAOthC,MAAQsrD,EAAQxjB,QAAUxG,EAAOwG,OAASwjB,EAAQvjB,SAAWzG,EAAOyG,SAG9HujB,EAAUhqB,EACV3zC,EAAUtE,QAAQ,iBAAkBilE,IACvC,EAqmBGsM,mBAnmBJ,SAA4BlL,GACxBjE,EAASiE,EACT/hE,EAAUtE,QAAQ,gBAAiBilE,GACtC,EAimBGuM,uBAzqBJ,SAAgCC,GAC5B,MAAMC,EAAY,CAAC,WAAY,cAAe,QAAS,WAAWhhF,QAAO,CAACC,EAAWiE,KACjFjE,EAAKiE,GAAK68E,EAAY78E,GAEfjE,IACR,CAAE,IAMkD,IAJ/B6zE,EAAcxpE,KAAK22E,GAChCA,EAAIlJ,WAGKxhE,QAAQwqE,EAAYhJ,WACpCjE,EAAc1wE,KAAK49E,GAGvBptE,EAAUtE,QAAQ,qBAAsB0xE,EAAWzM,GACtD,EA0pBG2M,yBAxpBJ,SAAkCC,GAC9B,IAAIC,EACJtN,EAAgBA,EAAc9zE,QAA8C,CAACC,EAAMghF,KAC3EA,EAAIlJ,WAAaoJ,EACjBC,EAASH,EAEThhF,EAAKmD,KAAK69E,GAEPhhF,IACR,SAEYoH,IAAX+5E,GACAxtE,EAAUtE,QAAQ,uBAAwB8xE,EAAQ7M,GAEzD,EA2oBG8M,yBAzoBJ,SAAkCN,GAC9B,MAAMK,EAAStN,EAAcvuE,QAAQ07E,GAC1BA,EAAIlJ,WAAagJ,EAAYhJ,WAGpCqJ,EAAOxgF,OAAS,GAChBgT,EAAUtE,QAAQ,uBAAwB8xE,EAAO,GAAI7M,GAE5D,EAkoBG+M,wBA7lBJ,SAAiC1/B,GAC7B6vB,EAAc7vB,EACdhuC,EAAUtE,QAAQ,sBAAuBilE,GAC5C,EA2lBGgN,oBAzlBJ,SAA6BpO,EAAoBI,EAAiBrB,GAC9DgB,EAAcC,EACdG,EAAWC,EACXtB,EAAsBC,EACtBt+D,EAAUtE,QAAQ,iBAAkBilE,GACvC,EAqlBGiN,4BAxjBJx2E,eAA2Cy2E,EAAmBC,GAC1D,IAAIC,EACAF,IAAct+E,GACdovE,GAAiB,EACjBoP,EAAiBpN,KAEjBhC,GAAiB,EACjBoP,EAAiBvS,GAAY35C,IAAIgsD,GAAarS,GAAY35C,IAAIgsD,GAAW72C,SAAMvjC,GAEnF,MAAMu6E,EAAiBxS,GAAY35C,IAAIisD,GAActS,GAAY35C,IAAIisD,GAAY92C,SAAMvjC,QACjF0P,EAASqpE,SACfxsE,EAAUtE,QAAQ,wBAAyBqyE,EAAgBC,EAAgBrN,GAC9E,EA6iBGsN,yBAplBJ,SAAkC1/E,GAC9BwvE,EAAcxvE,EAAM2/E,WAAa,GACjC1O,EAAYjxE,EAAMkN,MAClBuE,EAAUtE,QAAQ,qBAAsBqiE,EAAa4C,GACxD,EAilBGwN,gCA/kBJ,SAAyCpO,GACrCD,EAAsBC,EACtB//D,EAAUtE,QAAQ,+BAAgCilE,GACrD,EA6kBGyN,sBA3kBJ,SAA+BnO,GAC3BD,EAAYC,EACZjgE,EAAUtE,QAAQ,oBAAqBilE,GAC1C,EAykBG0N,mCAvkBJ,SAA4CjQ,GACxCD,EAAwBC,CAC3B,EAskBGkQ,iCApkBJ,SAA0ChQ,GAClCD,IAAwBC,IACxBD,EAAsBC,EACtBt+D,EAAUtE,QAAQ,gCAAiCilE,IAE1D,EAgkBG4N,mBA7dJ,SAA4BvG,EAA0CC,GAClElJ,EAASiJ,EACT/J,EAAW+J,eAAAA,EAAUz4E,GAEhBq9C,GAAuBo7B,IAAcp7B,GAAuBq7B,IAC7DjoE,EAAUtE,QAAQ,gBAAiBilE,GAAcqH,EAAUC,EAElE,EAudGuG,eAjjBJp3E,eAA8Bq3E,EAAuBC,EAAoBC,EAA2B9O,EAAmB+O,GACnHtP,EAAcmP,EACdpQ,EAAsBsQ,EACtBjP,EAAWgP,OACa,IAAb7O,IACPD,EAAYC,SAEV18D,EAASqpE,SACfoC,EAAiBlgF,SAASm+C,IACtBA,EAAEu/B,OAAOyC,qBAAqBlO,GAAa,IAE/C3gE,EAAUtE,QAAQ,WAAYilE,GACjC,EAsiBGmO,eAhiBJ13E,eAA8ByoE,EAAmB+O,GAC7CtP,OAAc7rE,EACdkrE,GAAiB,OACO,IAAbkB,IACPD,EAAYC,SAEV18D,EAASqpE,SACfoC,EAAiBlgF,SAASm+C,IACtBA,EAAEu/B,OAAO2C,qBAAqBpO,GAAa,IAE/C3gE,EAAUtE,QAAQ,WAAYilE,GACjC,EAshBGkO,qBAriBJ,SAA8BrhC,GAC1BxtC,EAAUtE,QAAQ,kBAAmB8xC,EACxC,EAoiBGuhC,qBArhBJ,SAA8BvhC,GAC1BxtC,EAAUtE,QAAQ,kBAAmB8xC,EACxC,EAohBGwhC,wBAlhBJ,SAAiC3O,GAC7BD,EAAcC,EACdrgE,EAAUtE,QAAQ,sBAAuBilE,GAC5C,EAghBGsO,sBAhnBJ,SAA+B/P,GAC3BD,EAAYC,EACZl/D,EAAUtE,QAAQ,iBAAkBwjE,EAAUyB,GACjD,EA8mBGuO,+BA/gBJ,SAAwC3O,GACpC,IAAI/hE,EACJ,MAAM2hB,EAAOogD,EACb,GAAKpgD,EAAKskD,QAEH,CACH,MAAM0K,EAAa7R,IACnB,GAAK6R,EAGE,CACH,MAAM1zE,EAAQ0kB,EAAKskD,QAAU,EAC7BjmE,EAAU,IAAIpJ,SAAQ,CAACC,EAAS4H,KAC5BkyE,EAAW36D,MAAM1X,MAAMo6D,IACnB,MAAMuN,EAAUvN,EAASnuD,MAAMwd,GAAMA,EAAE9qB,QAAUA,IACjDpG,EAAQovE,EAAQ,IACjB3yE,MAAMmL,EAAO,GAEvB,MATGuB,EAAUpJ,QAAQC,aAAQ5B,EAUjC,MAfG+K,EAAUpJ,QAAQC,aAAQ5B,GAiBzB+K,EAAQ1B,MAAMypB,IACfpG,EAAKskD,QAAUl+C,EACf+5C,EAAqBngD,EACrBngB,EAAUtE,QAAQ,2BAA4BilE,GAAa,GAElE,EAsfGyO,qBApfJ,SAA8BvxE,GAC1BmC,EAAUtE,QAAQ,kBAAmBilE,GAAc,CAC/C0O,OAAQxxE,EAAKwxE,OACbC,SAAUzxE,EAAKyxE,SACfC,gBAAiB1xE,EAAK0xE,iBAE7B,EA+eGC,iCA7eJ,SAA0C3xE,GACtCmC,EAAUtE,QAAQ,+BAAgCmC,EACrD,GA0fG4xE,kBAZiC,CACjC,qBAAIjR,GACA,OAAOD,CACV,EACD,kBAAIG,GACA,OAAOD,CACV,GAOJ,EC3pDW,SAAAiR,GAAuBpoE,EAAkBi4D,GACrD,MAAM30B,EAAU4wB,GAAY9b,KAC5B,OAAOxzD,OAAOC,KAAKy+C,GAASx+C,QAAwB,CAACC,EAAMkD,KACvD,MAAMi+C,EAAM5C,EAAQr7C,GAIpB,OAHIi+C,EAAIxW,IAAIuoC,aAAeA,GAAc/xB,EAAIxW,IAAIznC,KAAO+X,GACpDjb,EAAKmD,KAAKg+C,GAEPnhD,CAAI,GACZ,GACP,CAEM,SAAUsjF,GAAQxwD,GACpB,QAAKA,IAAUjzB,OAAOC,KAAKgzB,GAAQ6F,OAAOp5B,QAA4B6H,IAAlB0rB,EAAOvzB,KAI/D,CC+nCe,IAAAuX,GAAA,UAzoCf,WAAAtX,GAEqByD,KAAesgF,gBAAG,oBAClBtgF,KAAaugF,cAAG,kBAIzBvgF,KAAS0Q,UAAqB47D,KAC9BtsE,KAAAwgF,UAA2B16E,QAAQC,UAEnC/F,KAAcygF,eAAuI,EA6nChK,CA3nCG,gBAAWxO,GACP,OAAOjyE,KAAK0gF,SACf,CAED,YAAWxD,GACP,OAAOl9E,KAAKwgF,SACf,CAED,iBAAWvkD,GACP,OAAOj8B,KAAK46D,cACf,CAEM,IAAA52D,CAAKq0C,EAA+BrvC,GACvChJ,KAAKq4C,IAAMA,EACXr4C,KAAK0gF,UAAY13E,EACjBhJ,KAAK0Q,UAAUnF,IAAI,SAAUgD,IACzB,GAAkB,WAAdA,EAAKnS,KAAmB,CACXQ,OAAOC,KAAKmD,KAAKygF,gBACzBrhF,SAASpC,IACWA,EAAIsmB,WAAW/U,EAAKyJ,kBAE9BhY,KAAKygF,eAAezjF,EAC9B,GAER,IAER,CAEM,gBAAA2jF,CAAiBn5E,GACpBxH,KAAK46D,eAAiBpzD,CACzB,CAGM,WAAAo5E,CAAYryE,GACfvO,KAAK0Q,UAAUtE,QAAQ,QAASmC,EACnC,CAEM,UAAMP,CAAKjK,GACd,IAAI88E,EACJ7gF,KAAKwgF,UAAY,IAAI16E,SAASC,IAC1B86E,EAAkB96E,CAAO,IAE7B,IACI,MAAMnC,QAAe5D,KAAKq4C,IAAI3xB,OAAuB,iBAAkB3iB,EAAS/D,KAAK0gF,WACrF,QAAwBv8E,IAApBP,EAAOu7B,SACP,MAAM,IAAIt/B,MAAM,qDAGpB,MAAMI,EAAK2D,EAAOu7B,SAASl/B,GACrBi+C,QAAYguB,GAAYc,QAAQ/sE,GAWtC,OAVKD,KAAKi8B,gBAAiBj8B,KAAKi8B,cAAc8wC,6BAC1CzmE,YAAW,KACoB,aAAvB43C,EAAIxW,IAAIuT,YAIRiD,EAAI4+B,OAAOQ,iBAAiBp/B,EAAIxW,IAAIxkB,IACvC,GACF,GAEAg7B,EAAIxW,GACd,CAAS,QACNm5C,GACH,CACJ,CAEM,WAAM9yE,CAAMwvC,EAA6Cx5C,GAC5D,MAAMH,QAAe5D,KAAKoM,QAAQ,QAAS,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,WAAW,UACxE,OAAIA,EACOH,EAAOk9E,OAEXvjC,CACV,CAEM,cAAMg3B,CAASh3B,EAA6Ci3B,EAAgBuM,GAE/E,aADM/gF,KAAKoM,QAAQ,WAAY,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS,CAAEmf,IAAKsxD,EAAQuM,mBAAoB,cACtFxjC,CACV,CAEM,cAAMq2B,CAASr2B,EAA6CogB,SAC/D,MAAMqjB,EAAgC,GAChCC,EAAQ/xE,GAA0B8xE,EAAc9gF,KAAKgP,GAO3D,GALKgrC,GAAkByjB,EAAMzZ,QAAW3G,EAAEk1B,WACtCwO,EAAK1jC,EAAE2G,UAINhK,GAAkByjB,EAAM7B,QAAS,CAClC,MAAMwV,GAAe3T,EAAM7B,OAC3BmlB,EAAK1jC,EAAEuG,WAAWwtB,GACrB,CAMD,GAJKp3B,GAAkByjB,EAAMqW,QACzBiN,EAAK1jC,EAAEw2B,SAASpW,EAAMqW,SAGrB75B,GAAmBwjB,EAAMujB,cAAgB/mC,GAAoBwjB,EAAcwjB,YAAa,CACzF,MAAMC,EAA+B,QAArBx1E,EAAA+xD,EAAMujB,kBAAe,IAAAt1E,EAAAA,EAAA+xD,EAAcwjB,WACnDF,EAAK1jC,EAAEy4B,cAAcoL,GACxB,CAEIjnC,GAAmBwjB,EAAM0jB,WAC1BJ,EAAKjhF,KAAKoM,QAAQ,cAAe,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS,CAAEs9E,SAAU1jB,EAAM0jB,aAGlF,MAAMhN,EAAwD,CAC1DhC,UAAW1U,EAAM0U,UACjBE,SAAU5U,EAAM4U,SAChBD,UAAW3U,EAAM2U,UACjBE,SAAU7U,EAAM6U,WAGI6N,GAAQhM,IAE5B4M,EAAK1jC,EAAE62B,mBAAmBC,IAG9B,MAAMH,EAAkD,CACpDoN,WAAY3jB,EAAM2jB,WAClBC,cAAe5jB,EAAM4jB,cACrBC,gBAAiB7jB,EAAM6jB,gBACvBC,cAAe9jB,EAAM8jB,cACrBC,cAAe/jB,EAAM+jB,eASzB,OAPoBrB,GAAQnM,IAExB+M,EAAK1jC,EAAE02B,aAAaC,UAGlBpuE,QAAQof,IAAI87D,GAEXzjC,CACV,CAEM,wBAAM62B,CAAmB72B,EAA6C82B,GAEzE,aADMr0E,KAAKoM,QAAQ,qBAAsB,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAASswE,IAC7D92B,CACV,CAEM,wBAAM+2B,CAAmB/2B,GAE5B,aAD6Bv9C,KAAKoM,QAAQ,qBAAsB,CAAE4L,SAAUulC,EAAEt9C,IAEjF,CAEM,mBAAM+1E,CAAcz4B,EAA6C2jC,GAEpE,aADMlhF,KAAKoM,QAAQ,gBAAiB,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS,CAAEm9E,gBAC1D3jC,CACV,CAEM,mBAAM24B,CAAc34B,GAEvB,aADqBv9C,KAAKoM,QAAQ,gBAAiB,CAAE4L,SAAUulC,EAAEt9C,MACnDihF,UACjB,CAEM,kBAAMjN,CAAa12B,EAA6CokC,GAEnE,aADM3hF,KAAKoM,QAAQ,eAAgB,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS49E,IACvDpkC,CACV,CAEM,gBAAM42B,CAAW52B,GAEpB,aADsBv9C,KAAKoM,QAAQ,aAAc,CAAE4L,SAAUulC,EAAEt9C,IAElE,CAEM,cAAM8zE,CAASx2B,EAA6Cy2B,GAE/D,aADMh0E,KAAKoM,QAAQ,WAAY,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS,CAAEiwE,WACrDz2B,CACV,CAEM,cAAMm2B,CAASn2B,EAA6Co2B,GAC/D,MAAM5vE,EAAU,CACZiU,SAAUulC,EAAEt9C,GACZ8D,QAAS,CACLmB,MAAOyuE,IAIf,aADM3zE,KAAKoM,QAAQ,WAAYrI,EAAS,gBACjCw5C,CACV,CAEM,eAAMu6B,CAAUv6B,EAA6CqyB,GAChE,MAAM7rE,EAAU,CACZiU,SAAUulC,EAAEt9C,GACZ8D,QAAS,CACL6rE,aAIR,aADM5vE,KAAKoM,QAAQ,YAAarI,GACzBw5C,CACV,CAEM,2BAAMw6B,CAAsBx6B,EAA6CkzB,GAC5E,MAAM1sE,EAAU,CACZiU,SAAUulC,EAAEt9C,GACZ8D,QAAS,CACL0sE,uBAKR,aADMzwE,KAAKoM,QAAQ,wBAAyBrI,GACrCw5C,CACV,CAEM,SAAMy6B,CAAI4J,GACb,MAAM79E,EAAU,CACZiU,SAAU4pE,EAAY3hF,IAI1B,aADMD,KAAKoM,QAAQ,SAAUrI,GACtB69E,CACV,CAEM,WAAM3J,CAAM4J,GACf,MAAM99E,EAAU,CACZiU,SAAU6pE,EAAa5hF,IAI3B,aADMD,KAAKoM,QAAQ,WAAYrI,GACxB89E,CACV,CAEM,gBAAM1Q,CAAW5zB,EAA6C8G,GACjE,MAAsB,oBAAXj/C,QAA2BA,OAAOmiE,YAAoBua,WAAa,MACnE,IAAIh8E,SAAQgC,MAAOiU,EAAKgmE,KAC3B,MAAMC,EAAqBhiF,KAAKiiF,eAAe59B,EAAQ9G,GACvD,IAAI3qC,GAAS,EACb,MAAMgkC,EAAO,KACLhkC,IAGJA,GAAS,EAELsvE,IACAA,IACAA,OAA2B/9E,GAE/B4X,EAAIwhC,GACA4kC,IACAluE,aAAakuE,GACbA,OAAiBh+E,GACpB,EAEL,IAAIg+E,EACAD,EACCF,IACDE,EAA2B3kC,EAAEu9B,iBAAiB58B,IACrCl+C,KAAKiiF,eAAe59B,EAAQnG,IAGjCtH,GAAM,KAId,UAEU52C,KAAKoM,QAAQ,aAAc,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS,CAAEsgD,WACjE,CAAC,MAAO/4C,GAEL,YADAy2E,EAAIz2E,EAEP,CAGG02E,EACAprC,IAKJurC,EAAiB77E,YAAW,KACxBswC,GAAM,GACP,IAAK,WAGN52C,KAAKoM,QAAQ,aAAc,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS,CAAEsgD,YAE3D9G,EACV,CAEM,oBAAMo3B,CAAep3B,EAA6Cq3B,GAErE,aADM50E,KAAKoM,QAAQ,YAAa,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS6wE,GAAc,eAClEr3B,CACV,CAEM,uBAAMw3B,CAAkBx3B,EAA6Cs3B,GAExE,aADM70E,KAAKoM,QAAQ,eAAgB,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS8wE,GAAY,iBACnEt3B,CACV,CAEM,cAAM0G,CAAS1G,GAClB,IAAI6kC,EACAC,EACJ,IACI,MAAMzrC,EAAO,IAAI9wC,SAAc,CAACC,EAAS4H,KACrCy0E,EAAiB7kC,EAAEw9B,gBAAe,KAC9Bh1E,GAAS,IAEbs8E,EAAW9kC,EAAEy8B,SAAQ,KACjBrsE,EAAO,IAAI9N,MAAM,qBAAqB,GACxC,IAIN,aADMiG,QAAQof,IAAI,CAACllB,KAAKoM,QAAQ,WAAY,CAAE4L,SAAUulC,EAAEt9C,IAAM,gBAAiB22C,IAC1E2G,CACV,CAAS,QACF6kC,GACAA,IAEAC,GACAA,GAEP,CACJ,CAEM,WAAMn+B,CAAM3G,GACf,IAAI6kC,EACAC,EACJ,IACI,MAAMzrC,EAAO,IAAI9wC,SAAc,CAACC,EAAS4H,KACrCy0E,EAAiB7kC,EAAEw9B,gBAAe,KAC9Bh1E,GAAS,IAEbs8E,EAAW9kC,EAAEy8B,SAAQ,KACjBrsE,EAAO,IAAI9N,MAAM,qBAAqB,GACxC,IAIN,aADMiG,QAAQof,IAAI,CAACllB,KAAKoM,QAAQ,QAAS,CAAE4L,SAAUulC,EAAEt9C,IAAM,gBAAiB22C,IACvE2G,CACV,CAAS,QACF6kC,GACAA,IAEAC,GACAA,GAEP,CACJ,CAEM,qBAAM/O,CAAgB/1B,GAEzB,aADMv9C,KAAKoM,QAAQ,kBAAmB,CAAE4L,SAAUulC,EAAEt9C,IAAM,gBACnDs9C,CACV,CAEM,cAAM41B,CAAS51B,GAElB,aADMv9C,KAAKoM,QAAQ,WAAY,CAAE4L,SAAUulC,EAAEt9C,IAAM,gBAC5Cs9C,CACV,CAEM,aAAM61B,CAAQ71B,GAEjB,aADMv9C,KAAKoM,QAAQ,UAAW,CAAE4L,SAAUulC,EAAEt9C,IAAM,gBAC3Cs9C,CACV,CAEM,cAAM81B,CAAS91B,GAElB,aADMv9C,KAAKoM,QAAQ,WAAY,CAAE4L,SAAUulC,EAAEt9C,IAAM,gBAC5Cs9C,CACV,CAEM,cAAMg2B,CAASh2B,GAElB,aADMv9C,KAAKoM,QAAQ,WAAY,CAAE4L,SAAUulC,EAAEt9C,IAAM,gBAC5Cs9C,CACV,CAEM,YAAMi2B,CAAOj2B,GAEhB,aADMv9C,KAAKoM,QAAQ,SAAU,CAAE4L,SAAUulC,EAAEt9C,IAAM,gBAC1Cs9C,CACV,CAEM,oBAAMk2B,CAAel2B,GAExB,aADMv9C,KAAKoM,QAAQ,iBAAkB,CAAE4L,SAAUulC,EAAEt9C,IAAM,gBAClDs9C,CACV,CAEM,UAAM+3B,CAAK/3B,EAA6C+kC,EAAwDv+E,GACnH,MAAMgiC,EAA2F,CAC7Fw8C,eAAgBD,EAAariF,IAOjC,OAJA8lC,EAAKy8C,aAAez+E,EAAQ4tE,UAC5B5rC,EAAKwvC,UAAYxxE,EAAQwxE,gBAEnBv1E,KAAKoM,QAAQ,OAAQ,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAASgiC,GAAQ,qBAAsB,sBAAsBu8C,EAAariF,MAChHs9C,CACV,CAEM,eAAM44B,CAAU54B,EAA6Cg5B,EAAwDxyE,GASxH,aARM/D,KAAKoM,QAAQ,YAAa,CAC5B4L,SAAUulC,EAAEt9C,GACZ8D,QAAS,CACLoI,MAAOpI,EACP0+E,eAAgBlM,EAAat2E,GAC7BsiF,eAAgBhlC,EAAEt9C,KAEvB,oBAAoBs2E,EAAat2E,KAAM,sBAAsBs2E,EAAat2E,MACtEs9C,CACV,CAEM,eAAMm5B,CAAUn5B,EAA6Cx5C,GAChE,MAAM2+E,EAAsB,CAAC,qBAAsB,oBAQnD,OAPKxoC,GAAkBn2C,aAAO,EAAPA,EAASoyD,YAI5BusB,EAAUxiF,KAAK,kBAHfwiF,EAAUxiF,KAAK,sBACfwiF,EAAUxiF,KAAK,sBAAsB6D,EAAQoyD,qBAI3Cn2D,KAAKoM,QAAQ,YAAa,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,cAAc2+E,GACzDnlC,CACV,CAEM,gBAAMuG,CAAWvG,EAA6C+zB,GAAc,GAC/E,IAAI98C,EAQJ,OANIA,EADA88C,EACU,OAEA,aAGRtxE,KAAKoM,QAAQooB,EAAS,CAAExc,SAAUulC,EAAEt9C,IAAM,qBACzCs9C,CACV,CAEM,YAAM23B,CAAO33B,EAA6C43B,GAE7D,aADMn1E,KAAKoM,QAAQ,SAAU,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAASoxE,IACjD53B,CACV,CAEM,gBAAMi4B,CAAWj4B,EAA6Ck4B,GAEjE,aADMz1E,KAAKoM,QAAQ,uBAAwB,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS0xE,IAC/Dl4B,CACV,CAEM,gBAAMm4B,CAAWn4B,GAEpB,aADMv9C,KAAKoM,QAAQ,uBAAwB,CAAE4L,SAAUulC,EAAEt9C,KAClDs9C,CACV,CAEM,mBAAM6C,CAAc7C,EAA6ClgD,EAAc0vB,GAClF,IAAIoM,EACJ,IAGI,MAAMwpD,EAAgC3iF,KAAK4iF,oBAAoBvlF,GAEzDu5C,EAAO,IAAI9wC,SAAc,CAACC,EAAS4H,KACrCwrB,EAAKokB,EAAEq9B,kBAAiB,KACpB70E,GAAS,GACX,IAKN,aAHMD,QAAQof,IAAI,CAACllB,KAAKoM,QAAQ,gBAAiB,CAC7C4L,SAAUulC,EAAEt9C,GAAI5C,QAASslF,EAA+B51D,YACxD6pB,IACG2G,CACV,CAAS,QACFpkB,GACAA,GAEP,CACJ,CAEM,UAAMw8C,CAAKp4B,GAEd,aADMv9C,KAAKoM,QAAQ,aAAc,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS,CAAE4xE,MAAM,IAAU,wBACvEp4B,CACV,CAEM,YAAMq4B,CAAOr4B,GAEhB,aADMv9C,KAAKoM,QAAQ,aAAc,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS,CAAE4xE,MAAM,IAAW,wBACxEp4B,CACV,CAEM,aAAMs4B,CAAQt4B,GAKjB,aAJqBv9C,KAAKoM,QAAQ,UAAW,CACzC4L,SAAUulC,EAAEt9C,GACZ8D,QAAS,CAAE,KAEDy4D,IACjB,CAEM,aAAMsZ,CAAQv4B,EAA6Cw4B,GAO9D,aANM/1E,KAAKoM,QAAQ,UAAW,CAC1B4L,SAAUulC,EAAEt9C,GACZ8D,QAAS,CACL8+E,QAAS9M,KAGVx4B,CACV,CAEM,mBAAMuE,CAAcvE,EAA6CmB,GAEpE,aADM1+C,KAAKoM,QAAQ,gBAAiB,CAAE4L,SAAUulC,EAAEt9C,GAAI8D,QAAS,CAAE26C,eAAgB,qBAC1EnB,CACV,CAEM,yBAAMs5B,CAAoBt5B,EAA6Cu5B,GAO1E,aANM92E,KAAKoM,QAAQ,sBAAuB,CACtC4L,SAAUulC,EAAEt9C,GACZ8D,QAAS,CACL++E,OAAQhM,IAEb,8BACIv5B,CACV,CAEM,oBAAMwlC,CAAe9iF,EAAY8D,GACpC,MAAMi/E,EAAoBhjF,KAAKijF,cAAchjF,EAAI8D,SAC3C/D,KAAKkjF,aAAa,iBAAkB,CACtCtU,QAAS3uE,EACT8D,QAASi/E,GAEhB,CAEM,eAAMjM,CAAUuL,EAAwDv+E,GAC3E,MAAMi/E,EAAoBhjF,KAAKijF,cAAcX,EAAariF,GAAI8D,GAM9D,aALM/D,KAAKoM,QAAQ,kBAAmB,CAClC4L,SAAUsqE,EAAariF,GACvB8D,QAASi/E,IAGNV,CACV,CAEM,mBAAMtL,CAAch/D,EAAkBjU,GACzC,IAAKA,EACD,MAAM,IAAIlE,MAAM,oCAGpB,MAAMsjF,EAAc,IAAKp/E,GAEpBo/E,EAAYC,mBACbD,EAAYC,iBAAmB,GAG9BD,EAAYE,iBACbF,EAAYE,eAAiB,GAGjC,MAAMC,EAA8ItjF,KAAKujF,uBAAuBvrE,EAAUmrE,GAE1L,OAAOnjF,KAAKoM,QAAQ,iBAAkB,CAAE4L,WAAUjU,QAASu/E,IAAe91E,MAAK,KAC3E,MAAMg2E,EAAUF,EAAYG,MAAMr8E,KAAKs8E,GAAMA,EAAEzjF,KA8B/C,OA5BAqjF,EAAYG,MAAMrkF,SAASskF,IACvB,IAAIl4E,EAA+D,mBAAnBk4E,EAAa,YACzDA,EAAEC,YAAc,IAAMD,EAAEC,YAExB5/E,EAAQ0P,gBAAgBqX,UAAY44D,EAAEC,cACtCn4E,EAAW1D,MAAOyG,EAAgDq1E,KAC9D,IAAIhgF,EAUJ,OANIG,EAAQ0P,gBAAgBqX,WACxBlnB,QAAeG,EAAQ0P,KAAKlF,EAAMq1E,IAKlCF,EAAEC,uBAAuB74D,UAAY44D,EAAEC,cAAgB5/E,EAAQ0P,WAClDiwE,EAAEC,YAAYp1E,EAAMq1E,IAAWhgF,EAIzCA,GAAU8/E,EAAEC,WAAW,GAGtC3jF,KAAK0Q,UAAUhE,SAAS,GAAG42E,EAAYO,YAAYH,EAAEzjF,MACrDD,KAAK0Q,UAAUnF,IAAI,GAAG+3E,EAAYO,YAAYH,EAAEzjF,KAAMuL,EAAS,IAG5D,CACHouB,QAAS,IAAM55B,KAAK8jF,iBAAiBR,EAAYO,SAAUL,GAC3Dz/E,QAASo/E,EACZ,GAER,CAEM,mBAAMlM,CAAcj/D,EAAkBk/D,GACzC,OAAOl3E,KAAKoM,QAAQ,gBAAiB,CAAE4L,WAAUjU,QAAS,CAAEmzE,YAC/D,CAEM,iBAAM6M,CAAYC,GACrB,OAAOhkF,KAAKoM,QACR,cACA,CAAErI,QAAS,CAAEigF,cAEpB,CAEM,kCAAMC,CAA6BJ,EAAkBt1E,GACxD,MAEM21E,EAAyD,CAC3DC,OAAQ51E,EAAK61E,UACbC,oBAAqB91E,EAAK81E,oBAC1BC,gBAAiB/1E,EAAK+1E,iBAGpBC,QAAkBz+E,QAAQof,IAAIllB,KAAK0Q,UAAUtE,QAAQ,GAAGy3E,KAAYt1E,EAAK61E,YAAaF,GARrE,IAAM31E,EAAKq1E,QAAS,KAU3C,GAAyB,IAArBW,EAAU7mF,OAAc,CACxB,MAAM8mF,EAAkB,CAAE15B,OAAQ,EAAGD,MAAO,EAAGlwC,IAAK,EAAGoI,KAAM,GACvD4wB,EAAqC,iBAAlB4wC,EAAU,IAAqBjmF,MAAMC,QAAQgmF,EAAU,IAAqBC,EAAfD,EAAU,GAGhG,MAFyC,IAAKh2E,EAAM81E,oBAAqB1wC,EAG5E,CACJ,CAEM,4BAAM8wC,CAAuBlZ,EAAoBxlC,SACpD,MAAM/6B,EAA+C,QAAnCY,EAAA5L,KAAKygF,eAAelV,UAAe,IAAA3/D,EAAAA,EAAA,GACrD,IAAI84E,GAAY,EAChB,MAAMC,EAAqB,GAa3B,aAZM7+E,QAAQof,IAAIla,EAAU5D,KAAK23C,GACtB,IAAIj5C,SAAc,CAACC,EAAS4H,KAC/BoxC,GAAG,KACCh5C,GAAS,IACV,KACC4H,GAAQ,IACRi3E,IACAF,GAAY,EACZC,EAAYzkF,KAAK0kF,EAAM,GACxB7+C,EAAK,OAGT,CAAE2+C,YAAWC,cACvB,CAEM,YAAMvN,CAAOhyE,GAIhB,aAHMpF,KAAKoM,QAAQ,SAAU,CACzB4L,SAAU5S,EAAOnF,KAEdmF,CACV,CAEM,aAAMiyE,CAAQjyE,GAIjB,aAHMpF,KAAKoM,QAAQ,UAAW,CAC1B4L,SAAU5S,EAAOnF,KAEdmF,CACV,CAEM,mBAAM+xE,CAAc/xE,EAAkD2rE,GAOzE,aANM/wE,KAAKoM,QAAQ,gBAAiB,CAChC4L,SAAU5S,EAAOnF,GACjB8D,QAAS,CACLgtE,gBAGD3rE,CACV,CAEM,kBAAMkyE,CAAalyE,GAKtB,aAJMpF,KAAKoM,QAAQ,eAAgB,CAC/B4L,SAAU5S,EAAOnF,KAGdmF,CACV,CAEM,aAAMmyE,CAAQnyE,EAAkDrB,GAMnE,aALgC/D,KAAKoM,QACjC,oBACA,CAAE4L,SAAU5S,EAAOnF,GAAI8D,QAAS,IAAKA,MACtCwK,IAGN,CAEM,kBAAMs2E,CAAapmC,EAAqB16C,GAM3C,aALwC/D,KAAKoM,QACzC,yBACA,CAAE4L,SAAUymC,EAAU,GAAI16C,QAAS,CAAE+gF,eAAgBrmC,KAAc16C,MACpEwK,IAGN,CAEM,WAAMkpE,CAAMpG,EAAwDttE,GAMvE,aALM/D,KAAKoM,QACP,QACA,CAAE4L,SAAUq5D,EAAapxE,GAAI8D,QAAS,IAAKA,KAGxCstE,CACV,CAEM,cAAMwG,CAASxG,EAAwDttE,GAM1E,aALM/D,KAAKoM,QACP,WACA,CAAE4L,SAAUq5D,EAAapxE,GAAI8D,QAAS,IAAKA,KAGxCstE,CACV,CAEM,eAAM4H,CAAUjhE,EAAkBjU,GACrC,OAAO/D,KAAKoM,QACR,YACA,CAAE4L,WAAUjU,QAAS,IAAKA,IAEjC,CAEM,WAAMm0E,CAAM7G,EAAwDttE,GAKvE,aAJM/D,KAAKoM,QACP,QACA,CAAE4L,SAAUq5D,EAAapxE,GAAI8D,QAAS,IAAKA,KAExCstE,CACV,CAEM,gBAAM+G,CAAW/G,EAAwDttE,GAM5E,aALgC/D,KAAKoM,QACjC,aACA,CAAE4L,SAAUq5D,EAAapxE,GAAI8D,QAAS,IAAKA,MAC5CghF,QAGN,CAEM,WAAMzM,CAAMlzE,EAAkDrB,GACjE,MAAM8sB,EAAO,IAAK9sB,GAUlB,OATKA,EAAQoxE,SAA+B,YAApBpxE,EAAQoxE,UAC5BtkD,EAAKskD,cAAgB/vE,EAAOi3E,cAI5BxrD,EAAKskD,SAAmC,iBAAjBtkD,EAAKskD,SAAgD,iBAAjBtkD,EAAKskD,UAChEtkD,EAAKskD,QAAUtkD,EAAKskD,QAAQhpE,MAAQ,GAGjCnM,KAAKoM,QACR,QACA,CAAE4L,SAAU5S,EAAOnF,GAAI8D,QAAS,IAAK8sB,IAE5C,CAEM,aAAMgX,CAAQwpC,EAAwDuH,GAEzE,aADM54E,KAAKoM,QAAQ,UAAW,CAAE4L,SAAUq5D,EAAapxE,GAAI8D,QAAS,CAAE60E,iBAC/DvH,CACV,CAEM,cAAM0H,CAAS1H,EAAwDnuD,EAAanf,EAAsF,CAAA,GAC7KA,EAAQihF,mBAAqBjhF,EAAQkhF,OACrC,MAAMrhF,QAAyE5D,KAAKoM,QAAQ,cAAe,CAAE4L,SAAUq5D,EAAapxE,GAAI8D,QAAS,CAAEmf,MAAKnf,aACxJ,MAAO,CACHmf,MACA1lB,KAAMoG,EAAOshF,SACbzxE,KAAM7P,EAAOuhF,SAEpB,CAEM,qBAAMjM,CAAgB7H,EAAwDttE,GAEjF,aADM/D,KAAKoM,QAAQ,kBAAmB,CAAE4L,SAAUq5D,EAAapxE,GAAI8D,YAC5DstE,CACV,CAEM,4BAAM8H,CAAuB9H,GAEhC,aADqBrxE,KAAKoM,QAAQ,yBAA0B,CAAE4L,SAAUq5D,EAAapxE,IAExF,CAEM,eAAMy5E,CAAUrI,EAAwDttE,GAE3E,aADM/D,KAAKoM,QAAQ,YAAa,CAAE4L,SAAUq5D,EAAapxE,GAAI8D,YACtDstE,CACV,CAEM,UAAAuI,CAAcvI,EAAwDttE,GACzE,OAAO,IAAI+B,SAAQ,CAACiW,EAAKgmE,KACrB,MAAM/jE,EAAQtP,GAAMw6D,aACd/vC,EAAKn5B,KAAK0Q,UAAUnF,IAAI,SAAUw6B,IACpC,GAAkB,iBAAdA,EAAK3pC,MAA2B2pC,EAAK/tB,WAAaq5D,EAAapxE,IAAM8lC,EAAKx3B,KAAKyP,QAAUA,EAAO,CAChGmb,IACA,MAAM5qB,EAAOw3B,EAAKx3B,KACd,WAAYA,IACQ,WAAhBA,EAAKgE,OACLwvE,EAAIxzE,EAAKjB,SACc,eAAhBiB,EAAKgE,QACZwJ,EAAIxN,EAAK3K,QAGpB,KAEL5D,KAAKoM,QAAQ,aAAc,CAAE4L,SAAUq5D,EAAapxE,GAAI8D,QAASnH,OAAOumB,OAAO,CAAA,EAAI,IAAKpf,GAAW,CAAEia,WAAW,GAEvH,CASM,aAAM5R,CAAQooB,EAAiBzwB,KAAiB2+E,GACnD,OAAO1iF,KAAKolF,YAAYplF,KAAKugF,cAAe/rD,EAASzwB,KAAY2+E,EACpE,CAEM,kBAAMQ,CAAa1uD,EAAiBzwB,KAAiB2+E,GACxD,OAAO1iF,KAAKolF,YAAYplF,KAAKsgF,gBAAiB9rD,EAASzwB,KAAY2+E,EACtE,CAEM,aAAMnK,CAAQh7B,EAA6Cx5C,GAC9D,MAAMgiC,EAAO,CACT/tB,SAAUulC,EAAEt9C,GACZ8D,WAGJ,aADM/D,KAAKoM,QAAQ,UAAW25B,GACvBwX,CACV,CAEM,oBAAM8sB,CAAeryD,EAAkBjU,GAC1C,MAAMgiC,EAAO,CACT/tB,WACAjU,iBAEE/D,KAAKoM,QAAQ,iBAAkB25B,EACxC,CAEM,iBAAM2lC,CAAY1zD,GACrB,MAAM+tB,EAAO,CACT/tB,YAGJ,aADqBhY,KAAKoM,QAAQ,cAAe25B,EAEpD,CAEM,SAAAs1C,CAAU7vE,EAAyI65E,GACtJ,MAAM1/E,EAA6B,oBAAXP,QAA2BA,OAAeO,SAClE,OAAIA,GAAoC,aAAxB0/E,EAASpqC,WACdt1C,EAAS2/E,gBAAgB95E,EAAU65E,EAASplF,IAE5CD,KAAKulF,kBAAkB/5E,EAAU65E,EAASplF,GAAI,YAE5D,CAEM,cAAAulF,CAAeh6E,EAAiFmnE,GACnG,OAAO3yE,KAAKylF,sBAAsB9S,EAAM1yE,GAAI,aAAa,EAAMuL,EAClE,CAEM,YAAA8vE,CAAa9vE,EAAiF65E,GACjG,MAAM1/E,EAA6B,oBAAXP,QAA2BA,OAAeO,SAClE,OAAIA,GAAoC,aAAxB0/E,EAASpqC,WACdt1C,EAAS0hD,kBAAkB77C,EAAU65E,EAASplF,IAE9CD,KAAKulF,kBAAkB/5E,EAAU65E,EAASplF,GAAI,eAE5D,CAEM,YAAA07E,CAAanwE,EAA2G65E,GAC3H,MAAM1/E,EAA6B,oBAAXP,QAA2BA,OAAeO,SAClE,OAAIA,GAAoC,aAAxB0/E,EAASpqC,WACdt1C,EAAS4hD,uBAAuB/7C,EAAU65E,EAASplF,IAEnDD,KAAKulF,kBAAkB/5E,EAAU65E,EAASplF,GAAI,eAE5D,CAEM,WAAMw5B,CAAMr0B,EAAkDmnD,GACjE,MAAMxmB,EAAO,CACT/tB,SAAU5S,EAAOnF,GACjB8D,QAASwoD,GAEP3oD,QAAe5D,KAAKoM,QAAQ,QAAS25B,GAE3C,aADkBmmC,GAAYc,QAAQppE,EAAO3D,KAClCynC,GACd,CAEM,iBAAM4xC,CAAYgJ,EAAwDpwE,GAC7E,MAAM6zB,EAAO,CACT/tB,SAAUsqE,EAAariF,GACvB8D,QAAS,CACLmO,SAGR,OAAOlS,KAAKoM,QAAQ,cAAe25B,EACtC,CAEM,YAAM8yC,CAAOxH,SACVrxE,KAAKoM,QAAQ,SAAU,CAAE4L,SAAUq5D,EAAapxE,IACzD,CAEM,eAAM64E,CAAUzH,SACbrxE,KAAKoM,QAAQ,YAAa,CAAE4L,SAAUq5D,EAAapxE,IAC5D,CAEM,yBAAMm5E,CAAoBh0E,GAC7B,OAAOpF,KAAKoM,QAAQ,sBAAuB,CAAE4L,SAAU5S,EAAOnF,IACjE,CAEM,IAAAo5E,CAAKj0E,EAAkDrB,GAC1D,OAAO/D,KAAKoM,QAAQ,OAAQ,CAAE4L,SAAU5S,EAAOnF,GAAI8D,WACtD,CAEM,cAAA2hF,CAAezlF,GACLrD,OAAOC,KAAKmD,KAAKygF,gBACzBrhF,SAASpC,IACNA,EAAIsmB,WAAWrjB,WACRD,KAAKygF,eAAezjF,EAC9B,GAER,CAEO,iBAAAuoF,CAAkB/5E,EAAqKq4E,EAAkBznF,GAC7M,OAAO4D,KAAKylF,sBAAsB5B,EAAUznF,GAAM,EAAOoP,EAC5D,CAEO,qBAAAi6E,CAAsB5B,EAAkBznF,EAAcupF,EAAkBn6E,GAC5E,MAAMvL,EAAK,GAAG4jF,KAAYznF,IAEpBwmB,EAAQ,WACV,GAAI5iB,KAAKygF,eAAexgF,GAAK,CACzB,MAAM+K,EAAYhL,KAAKygF,eAAexgF,GACtCD,KAAKygF,eAAexgF,GAAM+K,EAAU3I,QAAQ08C,GAAOA,IAAOvzC,IACnB,IAAnCxL,KAAKygF,eAAexgF,GAAIvC,eACjBsC,KAAKygF,eAAexgF,EAElC,CAED,GAAmB,KADoB,QAA3B2L,EAAA5L,KAAKygF,eAAexgF,UAAO,IAAA2L,EAAAA,EAAA,IAC/BlO,OAAc,CAClB,MAAMqG,EAAU,CACZuZ,aAAa,GAEbqoE,EACA3lF,KAAKkjF,aAAa9mF,EAAM,CACpBwyE,QAASiV,EACT9/E,YAGJ/D,KAAKoM,QAAQhQ,EAAM,CACf4b,SAAU6rE,EACV9/E,WAGX,GAGL,OAAI/D,KAAKygF,eAAexgF,IACpBD,KAAKygF,eAAexgF,GAAIC,KAAKsL,GACtBoX,IAEP5iB,KAAKygF,eAAexgF,GAAM,CAACuL,GAE3Bm6E,EACA3lF,KAAKkjF,aAAa9mF,EAAM,CAAEwyE,QAASiV,IAEnC7jF,KAAKoM,QAAQhQ,EAAM,CAAE4b,SAAU6rE,IAG5BjhE,EACV,CAEO,sBAAA2gE,CAAuBvrE,EAAkBjU,GAC7C,MAAM6hF,EAA4B,CAACC,EAA4CtkD,KAC3E,GAAIx9B,EAAQw9B,UAAyBp9B,IAAf0hF,EAAKtkD,IAAsC,OAAfskD,EAAKtkD,IAAiB,CACpE,MAAMukD,EAAmB/hF,EAAQw9B,GAChCskD,EAAKtkD,GAAgBukD,CACzB,GAGCrC,EAA2C1/E,EAAQ0/E,MAAMr8E,KAAKs8E,IAChEkC,EAA0BlC,EAAG,YAC7BkC,EAA0BlC,EAAG,mBAEzB3/E,EAAQ0P,WAA2BtP,IAAlBu/E,EAAEC,aAA+C,OAAlBD,EAAEC,cAClDD,EAAEC,YAAc5/E,EAAQ0P,MAG3BiwE,EAA4BqC,cAAgBrC,EAAEC,YAC9CD,EAA4BU,UAAYV,EAAE1rE,SAEtC0rE,EAAEsC,iBACHtC,EAAEsC,eAAiB,UAGhBtC,KAGX,MAAO,IACA3/E,EACH0/E,QACAI,SAAU7rE,EACV+tE,cAAehiF,EAAQ0P,KACvBwyE,kBAAmBliF,EAAQmiF,WAElC,CAEO,gBAAApC,CAAiB9rE,EAAkBmuE,GACvC,OAAOnmF,KAAKoM,QAAQ,yBAA0B,CAC1C4L,WACAjU,QAAS,CAAE,IACZyJ,MAAK,KACJ24E,EAAQ/mF,SAASa,IACbD,KAAK0Q,UAAUhE,SAAS,GAAGsL,KAAY/X,IAAK,GAC9C,GAET,CAEO,mBAAAmmF,CAAoBz4C,KAAiC+0C,GACzD,MAAM2D,EAA6B,GAC7BC,EAAW5D,aAAA,EAAAA,EAAWrgF,QAAQrB,IAAOk5C,GAAkBl5C,KAAIoG,KAAKpK,GAC3D,IAAI8I,SAAe0/D,IACtB,MAAOppE,EAAM4b,EAAW21B,EAAO31B,UAAYhb,EAAIqpB,MAAM,KACrDggE,EAAInmF,KAAKF,KAAK0Q,UAAUnF,IAAI,SAAUgD,IAC9BA,EAAKnS,OAASA,GAAQmS,EAAKyJ,WAAaA,GACxCwtD,GACH,IACF,MAGL57D,EAAS,IAAI9D,SAAa,CAACC,EAAS4H,KACtC3N,KAAKq4C,IAAI3xB,OAAY,kBAAmBinB,EAAQ3tC,KAAK0gF,WAChDlzE,MAAMnG,IACCA,EAAE83B,UAAY93B,EAAE83B,SAASxhB,SACzBhQ,EAAOtG,GAEPtB,EAAQsB,EAAE83B,SACb,IAEJ38B,OAAOkC,GAAMiJ,EAAOjJ,IAAG,IAEhC,OAAOoB,QAAQof,IAAI,CAACtb,KAAW08E,IAC1B94E,MAAMg4D,GACIA,EAAE,KAEZ4X,SAAQ,KACLiJ,EAAIjnF,SAAS+5B,GAAOA,KAAK,GAEpC,CAEO,iBAAMisD,CAAYp+C,EAAoBxS,EAAiBzwB,KAAiB2+E,GAC5E,MAAM/0C,EAAS,IACR5pC,EACHywB,WAEJ,IAAIqsD,EACJ7gF,KAAKwgF,UAAY,IAAI16E,SAASC,IAC1B86E,EAAkB96E,CAAO,IAE7B,IACI,MAAsB,oBAAXX,QAA2BA,OAAOmiE,YAAoBua,WAAa,YAC7D9hF,KAAKomF,oBAAoBz4C,KAAW+0C,SAEpC1iF,KAAKumF,iBAAiBv/C,EAAY2G,EAEtD,CAAS,QACNkzC,GACH,CACJ,CAEO,sBAAM0F,CAAiBv/C,EAAoBjjC,GAC/C,IAAIo1B,EACJ,IACI,MAAMnb,EAAQtP,GAAMw6D,aACd/wD,EAAQ,IAAIrS,SAAe0/D,IAC7BrsC,EAAKn5B,KAAK0Q,UAAUnF,IAAI,SAAUgD,IAC1BA,EAAKyP,QAAUA,GACfwnD,GACH,GACH,IAEAp5D,EAAU,IAAItG,SAAa,CAACC,EAAS4H,KACvC5J,EAAQia,MAAQA,EAChBhe,KAAKq4C,IAAI3xB,OAAYsgB,EAAYjjC,EAAS/D,KAAK0gF,WAC1ClzE,MAAMnG,IACCA,EAAE83B,UAAY93B,EAAE83B,SAASxhB,SACzBhQ,EAAOtG,GAEPtB,EAAQsB,EAAE83B,SACb,IAEJ38B,OAAO6E,IACJsG,EAAOtG,EAAE,GACX,IAIV,aADqBvB,QAAQof,IAAI,CAAC9Y,EAAS+L,KAC7B,EACjB,CAAS,QACFghB,GACAA,GAEP,CACJ,CAEO,cAAA8oD,CAAeuE,EAAqDjpC,GACxE,MAAMriC,EAAUqiC,EAAE8G,OACZp3C,EAAWswC,EAAEtwC,SACnB,IAAI69C,EAAS07B,EAAU17B,OACnBD,EAAQ27B,EAAU37B,MAClB27B,EAAU17B,OAAS79C,EAASolE,YAC5BvnB,EAAS79C,EAASolE,WAElBmU,EAAU17B,OAAS79C,EAASqlE,YAC5BxnB,EAAS79C,EAASqlE,WAElBkU,EAAU37B,MAAQ59C,EAASslE,WAC3B1nB,EAAQ59C,EAASslE,UAEjBiU,EAAU37B,MAAQ59C,EAASulE,WAC3B3nB,EAAQ59C,EAASulE,UAGrB,MAAMiU,GAAkB37B,GAAS5vC,EAAQ4vC,SAAWA,EAC9C47B,GAAiB77B,GAAQ3vC,EAAQ2vC,QAAUA,EAC3C87B,GAAgBH,EAAUzjE,MAAO7H,EAAQ6H,OAASyjE,EAAUzjE,KAC5D6jE,GAAeJ,EAAU7rE,KAAMO,EAAQP,MAAQ6rE,EAAU7rE,IAE/D,OAAO8rE,GAAmBC,GAAkBC,GAAiBC,CAChE,CAEO,mBAAAhE,CAAoBvlF,GACxB,IAEI,MAAMwzB,EAAY,CAAA,EAClB,IAAK,MAAM7zB,KAAOJ,OAAOC,KAAKQ,GAAU,CACpC,IAAIf,EAAQe,EAAQL,QACC,IAAVV,IACPA,EAAQ,MAEZu0B,EAAK7zB,GAAOV,CACf,CACD,OAAOu0B,CACV,CAAC,MACE,OAAOxzB,CACV,CACJ,CAGO,aAAA4lF,CAAchjF,EAAY8D,GAC9B,IAAKA,EACD,MAAM,IAAIlE,MAAM,oCAGpB,MAAMsjF,EAAc,IAAKp/E,GAEpBo/E,EAAY6C,iBACb7C,EAAY6C,eAAiB,UAUjC,MAPyE,IAClE7C,EACH0D,YAAa1D,EAAY1vE,KACzBowE,SAAU5jF,EACV6mF,QAAS3D,EAAYnrE,SAI5B,GCtnCS,MAAO+uE,GAcjB,WAAAxqF,CAAY87C,EAA+BnrC,EAAqC6gE,EAAyDC,EAAuDC,EAAoD+Y,EAAgBpY,GAZ5P5uE,KAAS0Q,UAAqB47D,KAG9BtsE,KAAYinF,aAAG,IAUnBjnF,KAAKy/C,KAAOpH,EACZr4C,KAAKi2B,QAAU/oB,EAAO4S,UAAU,UAChC9f,KAAKknF,UAAYF,EACjBhnF,KAAK2uE,SAAWC,EAChB5uE,KAAKmnF,kBAAoBpZ,EACzB/tE,KAAKonF,kBAAoBpZ,EACzBhuE,KAAKqnF,mBAAqBpZ,CAC7B,CAEM,IAAAjqE,GACH,OAAO,IAAI8B,SAAQ,CAACC,EAAS4H,KACzB3N,KAAKy/C,KAAK7Z,SAAS,+BAA+B,CAACG,EAAM0G,IAC9CzsC,KAAKsnF,eAAevhD,KAGT,IAAIjgC,SAAc,CAACyhF,EAAeC,KACpDxnF,KAAKy/C,KAAKzmB,UAAU,kBAAmB,CACnCwD,cAAex8B,KAAKinF,aACpBtiF,OAAQ,OACR4H,UAAW,CACPk7E,YAAY,GAEhB35C,OAAS64B,IACL,GAA6B,kBAAzBA,EAAWp4D,KAAKnS,KAGhB,OAFA4D,KAAK46D,eAAiB+L,EAAWp4D,UACjCsF,GAAS8sE,iBAAiB3gF,KAAK46D,gBAGnC56D,KAAK0nF,aAAa/gB,EAAWp4D,KAAMxI,GACnC8N,GAAS+sE,YAAYja,EAAWp4D,KAAK,EAEzC8/B,YAAcrlC,IACVhJ,KAAK4gE,aAAe53D,EAEpB6K,GAAS7P,KAAKhE,KAAKy/C,KAAMz/C,KAAK4gE,aAAa,IAEhDp+D,OAAO8I,UACN,MAAMgC,EAAU,GAAgB,QAAb1B,EAAAN,aAAA,EAAAA,EAAOsZ,cAAM,IAAAhZ,OAAA,EAAAA,EAAEtO,UAAUuJ,KAAKC,UAAUwE,aAAK,EAALA,EAAO2zB,kBAAkB3zB,aAAA,EAAAA,EAAOgC,UAC3FK,EAAO,IAAI9N,MAAMyN,GAAS,GAC5B,GACH,GAEV,CAED,YAAWuG,GACP,OAAOA,EACV,CAEM,IAAA7F,CAAK1Q,EAAc4lB,EAAanf,GACnCA,EAAUA,GAAW,GACrB,MAAM4jF,EAAc,IAAK5jF,GAazB,YAX+BI,IAA3BwjF,EAAYxxB,YAA8D,iBAA3BwxB,EAAYxxB,aAC3DwxB,EAAYxxB,WAAawxB,EAAYxxB,WAAWl2D,IAAM,IAG1D0nF,EAAYrqF,KAAOA,EACnBqqF,EAAYzkE,IAAMA,EAGlBykE,EAAYC,YAAc7jF,EAAQ6jF,aAAe7jF,EAAQ9E,aAElD0oF,EAAY1oF,MACZe,KAAK6T,SAAS7F,KAAK25E,EAC7B,CAEM,aAAA3Q,CAAch/D,EAAkBjU,GACnC,OAAO/D,KAAK6T,SAASmjE,cAAch/D,EAAUjU,EAChD,CAEM,eAAMgzE,CAAU/+D,EAAkBjU,GACrC,MAAMqB,EAAS8mE,GAAY35C,IAAIva,SACzBhY,KAAK6T,SAASkjE,UAAU3xE,EAAOsiC,IAAK3jC,EAC7C,CAEM,WAAA8jF,CAAYr8E,GACf,OAAOxL,KAAK0Q,UAAUnF,IAAI,eAAgBC,EAC7C,CAEM,WAAAs8E,CAAYt8E,GACf,OAAOxL,KAAK0Q,UAAUnF,IAAI,eAAgBC,EAC7C,CAEM,yBAAA4lD,CAA0B5lD,GAC7B,OAAOxL,KAAK0Q,UAAUnF,IAAI,sBAAuBC,EACpD,CAEM,OAAAu8E,CAAQv8E,GACX,OAAOxL,KAAK0Q,UAAUnF,IAAI,eAAgBC,EAC7C,CAEM,EAAA48C,GACH,OAAOpoD,KAAKknF,SACf,CAEM,OAAAc,GACH,OAAOhoF,KAAK2uE,QACf,CAEM,OAAAviE,CAAWooB,EAAiBxc,EAAkBjU,GACjD,OAAO/D,KAAKy/C,KAAK/4B,OAAU,kBAAmB,CAC1C8N,UACAzwB,UACAiU,YAEP,CAGM,oBAAAiwE,CAAqBz8E,GACxB,OAAOxL,KAAK0Q,UAAUnF,IAAI,sBAAuBC,EACpD,CAEM,8BAAA08E,CAA+B18E,GAClC,OAAOxL,KAAK0Q,UAAUnF,IAAI,uBAAwBC,EACrD,CAEM,wBAAA28E,CAAyB38E,GAC5B,OAAOxL,KAAK0Q,UAAUnF,IAAI,2BAA4BC,EACzD,CAEM,mBAAA48E,CAAoB58E,GACvB,OAAOxL,KAAK0Q,UAAUnF,IAAI,sBAAuBC,EACpD,CAEM,gBAAA68E,CAAiB78E,GACpB,OAAOxL,KAAK0Q,UAAUnF,IAAI,YAAaC,EAC1C,CAEM,iBAAA88E,CAAkB98E,GACrB,OAAOxL,KAAK0Q,UAAUnF,IAAI,aAAcC,EAC3C,CAEM,2BAAA+8E,CAA4B/8E,GAC/B,OAAOxL,KAAK0Q,UAAUnF,IAAI,gCAAiCC,EAC9D,CAEO,cAAA87E,CAAevhD,GACnB,MAAkB,+BAAdA,EAAK3pC,KACE4D,KAAK6T,SAASowE,6BAA6Bl+C,EAAKx3B,KAAKyJ,SAAU+tB,EAAKx3B,MACtD,cAAdw3B,EAAK3pC,MAAsC,iBAAd2pC,EAAK3pC,MAAyC,iBAAd2pC,EAAK3pC,KAClE4D,KAAK6T,SAAS4wE,uBAAuB1+C,EAAKx3B,KAAKg9D,WAAYxlC,EAAKx3B,KAAKw3B,MAGzEjgC,QAAQ6H,OAAO,6BAA8Bo4B,EAAa3pC,OACpE,CAEO,YAAAsrF,CAAac,EAAyBC,SAC1C,MAAMC,EAAsB1oF,KAAK2oF,uBAAuBH,GAGxD,GAAwB,aAApBA,EAAWpsF,KAAqB,CAchC,OAbiCosF,EACTltC,QAAQl8C,SAASm+C,IACrC,MAAMqrC,EAAiB1c,GAAY35C,IAAIgrB,EAAEt9C,IACzC,GAAI2oF,EACAA,EAAe9L,OAAOC,aAAa/8E,KAAK6oF,8BAA8BtrC,IACtEqrC,EAAezI,kBAAoBngF,KAAK8oF,uBAAuBvrC,OAC5D,CACH,MAAMW,EAAMl+C,KAAK07C,aAAa6B,EAAEt9C,GAAIs9C,GACpC2uB,GAAYU,gBAAgB1uB,EAAIxW,IAAIznC,GACvC,CACDD,KAAK0Q,UAAUtE,QAAQ,eAAgBs8E,EAAoB,SAE/DD,EAAazoF,KAEhB,CAGD,GAAwB,oBAApBwoF,EAAWpsF,KAEX,YADA4D,KAAK0Q,UAAUtE,QAAQ,eAAgBs8E,GAK3C,GAAwB,YAApBF,EAAWpsF,KAAoB,CAC/B,MAAM2sF,EAA0B,EAC1B7qC,EAAMl+C,KAAK07C,aAAaqtC,EAAuB/wE,SAAU+wE,EAAuBx6E,MAAQ,CAAA,GAG9F,OAFA29D,GAAYQ,cAAcxuB,EAAIxW,IAAIznC,SAClCD,KAAK0Q,UAAUtE,QAAQ,eAAgBs8E,EAE1C,CAED,GAAwB,6BAApBF,EAAWpsF,KAAqC,CAChD,MAAMyU,EAAO23E,EAGb,OAFAxoF,KAAK0Q,UAAUtE,QAAQ,2BAA4ByE,EAAKtC,WACxDvO,KAAK0Q,UAAUtE,QAAQ,eAAgBo8E,EAE1C,CAED,GAAwB,wBAApBA,EAAWpsF,KAAgC,CAC3C,MAAMyU,EAAO23E,EAGb,OAFAxoF,KAAK0Q,UAAUtE,QAAQ,sBAAuByE,EAAKtC,WACnDvO,KAAK0Q,UAAUtE,QAAQ,eAAgBo8E,EAE1C,CAED,GAAwB,gCAApBA,EAAWpsF,KAAwC,CACnD,MAAMyU,EAAO23E,EAGb,OAFAxoF,KAAK0Q,UAAUtE,QAAQ,gCAAiCyE,EAAKtC,WAC7DvO,KAAK0Q,UAAUtE,QAAQ,eAAgBo8E,EAE1C,CAGD,MAAMQ,EAAuC9c,GAAY35C,IAAI,EAAava,UAC1E,IAAKgxE,EAED,YADAhpF,KAAKi2B,QAAQ3qB,MAAM,iDAAiDzE,KAAKC,UAAU0hF,EAAY,KAAM,MAIzG,MAAMS,EAAsDD,EAAsBthD,IAC5EwhD,EAAgCF,EAAsBlM,OAG5D,GAAwB,kBAApB0L,EAAWpsF,KAA0B,CACrC,MAAM+sF,EAAgCX,EACtCU,EAAgBxL,oBAAoByL,EAA6B56E,KACpE,CAGD,GAAwB,eAApBi6E,EAAWpsF,KAAuB,CAClC,MAAMgtF,EAA6BZ,EACnCtc,GAAYW,mBAAmBuc,EAA0BpxE,UACzDkxE,EAAgB5L,iBAAiB8L,EAA0B76E,KAC9D,CAGD,GAAwB,iBAApBi6E,EAAWpsF,KAAyB,CACpC,MAAMitF,EAA0Bb,EAChCU,EAAgB/L,mBAAmBkM,EAAuB96E,KAC7D,CAGD,GAAwB,oBAApBi6E,EAAWpsF,KAA4B,CACvC,MAAMktF,EAAoCd,EAC1CU,EAAgBvJ,sBAAsB2J,EAAiC/6E,KAC1E,CAwBD,GArBwB,sBAApBi6E,EAAWpsF,MACX8sF,EAAgB7L,wBAAwBmL,EAAWj6E,MAI/B,mBAApBi6E,EAAWpsF,MACX8sF,EAAgB1L,qBAAqBgL,EAAWj6E,MAI5B,iBAApBi6E,EAAWpsF,MACX8sF,EAAgBjM,wBAAwBuL,EAAWj6E,MAI/B,sBAApBi6E,EAAWpsF,OACX8sF,EAAgB9K,wBAAwBoK,EAAWj6E,MACnDvO,KAAK0Q,UAAUtE,QAAQ,sBAAuB68E,IAI1B,uBAApBT,EAAWpsF,KAA+B,CAC1C,MAAMmtF,EAA+Bf,EACrCU,EAAgBvK,yBAAyB4K,EAA6Bh7E,MACtE29D,GAAYY,2BAA2Byc,EAA6Bh7E,KAAKyJ,SAA+B,QAArBpM,EAAA5L,KAAK46D,sBAAgB,IAAAhvD,OAAA,EAAAA,EAAAmhE,6BACxG/sE,KAAK0Q,UAAUtE,QAAQ,sBAAuBm9E,EAA6Bh7E,KAC9E,CAED,GAAwB,iCAApBi6E,EAAWpsF,KAAyC,CACpD,MAAMyU,EAAO23E,EACbU,EAAgBnK,mCAAmCluE,EAAKtC,KAAKi7E,oBAC7DxpF,KAAK0Q,UAAUtE,QAAQ,uBAAwByE,EAAKtC,KACvD,CAGD,GAAwB,iBAApBi6E,EAAWpsF,KAAyB,CACpC,MAAMqtF,EAA0BjB,EAChCxoF,KAAK0pF,aAAaR,EAAiBD,EAAWQ,EAAuBl7E,KACxE,CAOD,GALwB,uBAApBi6E,EAAWpsF,OACX8sF,EAAgB7K,oBAAoBmK,EAAWj6E,KAAK8hE,QAASmY,EAAWj6E,KAAK8hE,QAASmY,EAAWj6E,KAAKygE,oBACtGhvE,KAAK0Q,UAAUtE,QAAQ,kBAGH,qBAApBo8E,EAAWpsF,KAA6B,CACxC,MAAMkjF,EAAmBc,GAAuB6I,EAAUhpF,GAAIuoF,EAAWj6E,KAAK8hE,SACxE9hE,EAAOi6E,EAAWj6E,KACxB26E,EAAgBhK,eAAe3wE,EAAK8hE,QAAS9hE,EAAK8hE,QAAS9hE,EAAKygE,mBAAoBzgE,EAAKgiE,SAAU+O,GAC9F9xE,MAAK1F,UAEEw3E,EAAiB5hF,OAAS,UACpBmW,GAASqpE,SACfl9E,KAAK0Q,UAAUtE,QAAQ,eAAgB68E,EAAWT,EAAWj6E,KAAK8hE,QAASmY,EAAWj6E,KAAKygE,oBAC9F,GAEZ,CAED,GAAwB,uBAApBwZ,EAAWpsF,KAA+B,CAE1C,MAAMutF,EAAgBV,EAAUhZ,WAC1BqP,EAAmBc,GAAuB6I,EAAUhpF,GAAI0pF,GAC9DT,EAAgB1J,eAAegJ,EAAWj6E,KAAKgiE,SAAU+O,GACpD9xE,MAAK1F,UAEEw3E,EAAiB5hF,OAAS,UACpBmW,GAASqpE,SACfl9E,KAAK0Q,UAAUtE,QAAQ,eAAgB68E,EAAWT,EAAWj6E,KAAK8hE,QAAS4Y,EAAUhZ,YACxF,GAEZ,CAEuB,+BAApBuY,EAAWpsF,MACX8sF,EAAgBlK,iCAAiCwJ,EAAWj6E,KAAKygE,oBAG7C,0BAApBwZ,EAAWpsF,MACX8sF,EAAgB5K,4BAA4BkK,EAAWj6E,KAAKq7E,YAAapB,EAAWj6E,KAAKs7E,cAGrE,kBAApBrB,EAAWpsF,MACX8sF,EAAgB/K,yBAAyBqK,EAAWj6E,MAGhC,gBAApBi6E,EAAWpsF,MACX8sF,EAAgBtL,uBAAuB4K,EAAWj6E,MAG9B,kBAApBi6E,EAAWpsF,MACX8sF,EAAgBlL,yBAAyBwK,EAAWj6E,MAGhC,4BAApBi6E,EAAWpsF,MACX8sF,EAAgBxJ,wBAAwB8I,EAAWj6E,MAI/B,WAApBi6E,EAAWpsF,OACX8vE,GAAYvmC,OAAOqjD,GACnBE,EAAgBlM,qBAGI,yBAApBwL,EAAWpsF,MACX8sF,EAAgBzL,2BAA2B+K,EAAWj6E,MAGlC,6BAApBi6E,EAAWpsF,MACX8sF,EAAgBtJ,+BAA+B4I,EAAWj6E,MAGtC,mBAApBi6E,EAAWpsF,MACX8sF,EAAgBpJ,qBAAqB0I,EAAWj6E,MAG5B,8BAApBi6E,EAAWpsF,MACX8sF,EAAgBrK,gCAAgC2J,EAAWj6E,MAGvC,oBAApBi6E,EAAWpsF,MACX8sF,EAAgBpK,sBAAsB0J,EAAWj6E,MAG7B,qCAApBi6E,EAAWpsF,MACX8sF,EAAgBhJ,iCAAiCsI,EAAWj6E,MAIhEvO,KAAK0Q,UAAUtE,QAAQ,eAAgBs8E,EAC1C,CAEO,YAAAhtC,CAAa1jC,EAAkBjU,GACnC,MAAM+lF,EAAoChc,GAAc91D,EAAUhY,KAAK6oF,8BAA8B9kF,GAAU8P,GAAU7T,KAAKi2B,QAASj2B,KAAKmnF,kBAAmBnnF,KAAKonF,kBAAmBpnF,KAAKqnF,mBAAoBrnF,KAAKy/C,MAGrN,OAFAqqC,EAAmB3J,kBAAoBngF,KAAK8oF,uBAAuB/kF,GACnEmoE,GAAY3gE,IAAIu+E,GACTA,CACV,CAEO,kBAAMJ,CAAaR,EAA+BD,EAAqD/kC,GAC3GglC,EAAgBvL,mBAAmBz5B,GACnC,IAESlkD,KAAK46D,eAAemS,mCACfb,GAAYc,QAAQic,EAAUhpF,GAE3C,CAAC,MAAOqL,GACL,MACH,CACG44C,EACAlkD,KAAK0Q,UAAUtE,QAAQ,YAAa68E,GAEpCjpF,KAAK0Q,UAAUtE,QAAQ,aAAc68E,EAE5C,CAEO,6BAAAJ,CAA8B9iD,GAElC,MAAO,CACHzoC,KAAMyoC,EAAKzoC,KACXD,QAAS0oC,EAAK1oC,QACdgnD,OAAQte,EAAKse,OACbnhC,IAAK6iB,EAAK7iB,IACVhe,MAAO6gC,EAAK7gC,MACZ6+C,UAAWhe,EAAKge,UAChBG,MAAOne,EAAK0sC,UACZxzE,MAAO8mC,EAAK9mC,MACZy/C,WAAY3Y,EAAK2Y,WACjBkwB,QAAS7oC,EAAK6oC,QACdF,WAAY3oC,EAAK64C,UACjBnM,UAAW1sC,EAAK0sC,UAChB3D,qBAAsB/oC,EAAKyjD,mBAC3B1Z,YAAa/pC,EAAK+pC,YAClBG,WAAYlqC,EAAKsqC,QACjBA,QAAStqC,EAAKsqC,QACd/nB,KAAMviB,EAAKuiB,KACX0mB,mBAAoBjpC,EAAKipC,mBACzBM,cAAevpC,EAAKgkD,YACpB98E,SAAU84B,EAAK94B,SACfguC,WAAYlV,EAAKkV,WACjB81B,WAAYhrC,EAAKgrC,WAEjBR,SAAUxqC,EAAKwqC,SACfU,kBAAmBlrC,EAAKkrC,kBACxBrB,SAAU7pC,EAAK6pC,SACfO,SAAUpqC,EAAKoqC,SAEfU,aAAc9qC,EAAK8qC,aACnBmZ,gBAAiBjkD,EAAKmtC,SACtB75D,gBAAiB0sB,EAAK1sB,gBACtBo3D,mBAAoB1qC,EAAK0qC,mBACzBE,SAAU5qC,EAAK4qC,SAEtB,CAEO,sBAAAmY,CAAuB/iD,GAC3B,MAAO,CACHmpC,kBAAmBnpC,EAAKmpC,kBACxBE,eAAgBrpC,EAAKqpC,eAE5B,CAEO,sBAAAuZ,CAAuBsB,GAC3B,IAEI,IAAKA,EAAYjyE,SACb,OAAOiyE,EAIX,MAAM7kF,EAAS8mE,GAAY35C,IAAI03D,EAAYjyE,UAC3C,IAAK5S,EACD,OAAO6kF,EAGX,MAAMrmF,EAA8B,CAChC3E,MAAOgrF,EAAY7tF,KACnBypD,WAAYzgD,EAAOsiC,IAAIpqC,QACpB2sF,GAoBP,MAjBqB,qBAAjBrmF,EAAO3E,QACP2E,EAAO3E,MAAQ,eAGE,iBAAjB2E,EAAO3E,QAEP2E,EAAO3E,MAAQ2E,EAAO2K,KAAK27E,OAAO,GAAGC,cAAgBvmF,EAAO2K,KAAKhP,MAAM,IAGtD,gBAAjBqE,EAAO3E,QACP2E,EAAO3E,MAAQ,oBAGE,kBAAjB2E,EAAO3E,QACP2E,EAAO3E,MAAQ,sBAGZ2E,CACV,CAAC,MAAO0H,GACL,OAAO2+E,CACV,CACJ,ECngBL,ICGAG,GAAe,CAACnqF,EAAY4T,KAExB,MAAMnD,EAA8B25E,KAE9BC,EAAuB,GAE7B,IAAIC,EACA7a,EAuDJ5nE,eAAesE,EAAQooB,EAAiBzwB,KAAwClH,GAE5E,aADMgX,EAASzH,QAAwCooB,EAASzwB,KAAYlH,GACrE2tF,CACV,CAuBD,SAASC,IACL,MAAMC,EAAyD,GAS/D,OAPAJ,EAAWlrF,SAASwyE,IAChB,MAAM+Y,EAAeC,EAAmBhZ,QACZ,IAAjB+Y,GACPD,EAAWxqF,KAAKyqF,EACnB,IAGED,CACV,CAED,SAASE,EAAmB5yE,GACxB,OAAOk0D,GAAY35C,IAAIva,GAAYk0D,GAAY35C,IAAIva,GAAU0vB,SAAMvjC,CACtE,CA6DD,MAAMqmF,EAA8C,CAChDvqF,KACA,WAAIq7C,GACA,OAjHR,SAAiBljC,GACb,MAAMyyE,EAA4DJ,IAIlE,MAHuB,mBAAZryE,GACPA,EAAQyyE,GAELA,CACV,CA2GcvvC,EACV,EACD7hC,KAxIJ,SAAcrU,EAA2DgT,EAAsE9M,GAC3I,IAAIsmE,EACkB,iBAAXxsE,EACPwsE,EAAQxsE,EACA80C,GAAkB90C,KAC1BwsE,EAAQxsE,EAAOnF,IAGnB,MAAMi+C,EAAM0sC,EAAmBhZ,GAC/B,GAAI1zB,EAIA,MAHuB,mBAAZ9lC,GACPA,EAAQ8lC,GAELA,EAEc,mBAAV5yC,GACPA,EAAM,sBAAsBsmE,IAGvC,EAsHG,mBAAIkZ,GACA,YA/DqD3mF,IAD1BsmF,IAAsBhxE,MAAM8jC,IAAOA,EAAEuxB,sBAiEnE,EACD,gBAAIic,GACA,OA5DGR,CA6DN,EACD,aAAIxmC,GACA,OAAO2rB,CACV,EACDsb,WAAY,CAAC5yE,EAAS9M,IACX8lE,GAAM3J,oBAAmB,IACrBr7D,EAAQ,2BAA4B,CAAE4L,SAAUsyE,EAAW,GAAIvmF,QAAS,CAAE++E,QAAQ,OAAawH,EAAWljF,KAAKm2C,GAAM,gCAAgCA,QAC7JnlC,EAAS9M,GAEhB2/E,WAAY,CAAC7yE,EAAS9M,IACX8lE,GAAM3J,oBAAmB,IACrBr7D,EAAQ,2BAA4B,CAAE4L,SAAUsyE,EAAW,GAAIvmF,QAAS,CAAE++E,QAAQ,OAAcwH,EAAWljF,KAAKm2C,GAAM,gCAAgCA,QAC9JnlC,EAAS9M,GAEhB8wE,SAAUt0E,gBACU+L,EAASzH,QAA2B,gBAAiB,CAAE4L,SAAUsyE,EAAW,MACnFplF,MAEbwuE,SAAU5rE,MAAO5C,IACb,GAAIi1C,GAAmBj1C,GACnB,MAAM,IAAIrF,MAAM,0CAEpB,OAAOuM,EAAQ,gBAAiB,CAAE4L,SAAUsyE,EAAW,GAAIvmF,QAAS,CAAEmB,UAAU,EAEpFqyE,QAAUC,GACC3jE,EAASgxE,aAAayF,EAAY9S,GAE7CrE,SAAU,CAAC/6D,EAAS9M,IACT8lE,GAAM3J,oBAAmB,IACrBr7D,EAAQ,gBAAiB,CAAE4L,SAAUsyE,EAAW,OAASA,EAAWljF,KAAKm2C,GAAM,gBAAgBA,QACvGnlC,EAAS9M,GAEhB8nE,QAAS,CAACh7D,EAAS9M,IACR8lE,GAAM3J,oBAAmB,IACrBr7D,EAAQ,eAAgB,CAAE4L,SAAUsyE,EAAW,OAASA,EAAWljF,KAAKm2C,GAAM,gBAAgBA,QACtGnlC,EAAS9M,GAEhB0pE,KAAO/wB,IACH,IAAK/J,GAAkB+J,KAAc5J,GAAU4J,GAC3C,MAAM,IAAIpkD,MAAM,oCAGpB,OADAokD,IAAY/J,GAAkB+J,IAAYA,EACnCpwC,EAASqvE,aAAa,YAAa,CACtCtU,QAAS3uE,EACT8D,QAAS,CAAEkgD,aACb,EAENgxB,KAAM,IACKphE,EAASqvE,aAAa,YAAa,CACtCtU,QAAS3uE,IAGjB8N,MAAO,IACI8F,EAASqvE,aAAa,aAAc,CACvCtU,QAAS3uE,IAGjB82E,UAAYhzE,GACD8P,EAASkvE,eAAe9iF,EAAI8D,GAEvCmnF,0BAlHJ,SAAmC1/E,GAC/B,OAAOkF,EAAUnF,IAAI,4BAA6BC,EACrD,EAiHG01D,cA/GJ,SAAuB11D,GACnB,OAAOkF,EAAUnF,IAAI,eAAgBC,EACxC,EA8GG2/E,gBA5GJ,SAAyB3/E,GACrB,OAAOkF,EAAUnF,IAAI,iBAAkBC,EAC1C,EA2GGmvE,oBAzGJ,SAA6BnvE,GACzB,IAAKA,EACD,MAAM,IAAI3L,MAAM,iCAEpB,GAAI2L,GAAgC,mBAAbA,EACnB,MAAM,IAAI3L,MAAM,wCAEpB,OAAO6Q,EAAUnF,IAAI,2BAA4BC,EACpD,EAkGG6vE,UAhGJ,SAAmB7vE,GACf,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,+BAYpB,OAAOgU,EAAS2xE,gBARgB,CAACptE,EAAqB9M,EAAmBi6D,KACrE,MAAMr2D,EAAU1D,EAAS+5D,IACrBr2D,eAAAA,EAAS1B,MACT0B,EAAQ1B,KAAK4K,GAAS5V,MAAM8I,GAE5B8M,GACH,GAEwCoyE,EAChD,GAoFKY,EAA0B,CAC5B,WAAI9vC,GACA,OAAOgvC,CACV,EACD1qC,UA3OJ93C,eAAyB8pE,eACrB,IAAmC,IAA/B0Y,EAAWj3E,QAAQu+D,GAAe,CAClC0Y,EAAWpqF,KAAK0xE,GAChB,MAAM1zB,EAAqBguB,GAAY35C,IAAIq/C,GAC3C1zB,EAAI4+B,OAAOmC,mBAAmBuL,OAAarmF,GAC3ComF,EAAoF,QAAhErvC,EAA2C,QAA3CtvC,EAAAsyC,EAAIiiC,kBAAkBjR,yBAAqB,IAAAtjE,EAAAA,EAAA2+E,SAAqB,IAAArvC,GAAAA,EACpFw0B,EAAmE,QAAtDz2C,EAAwC,QAAxCslC,EAAArgB,EAAIiiC,kBAAkB/Q,sBAAkB,IAAA7Q,EAAAA,EAAAmR,SAAc,IAAAz2C,GAAAA,QAC7DplB,EAASqpE,SACfxsE,EAAUtE,QAAQ,eAAgBo+E,EAAatsC,EAAIxW,IACtD,CACJ,EAkOG2jD,aAhOJvjF,eAA4Bo2C,GACxB,MAAM/xC,EAAgBm+E,EAAWj3E,QAAQ6qC,EAAIxW,IAAIznC,KAClC,IAAXkM,IACAm+E,EAAW/8D,OAAOphB,EAAO,GACzB+xC,EAAI4+B,OAAOmC,wBAAmB96E,EAAWqmF,SACnC32E,EAASqpE,SACfxsE,EAAUtE,QAAQ,iBAAkBo+E,EAAatsC,EAAIxW,KAE5D,EAyNGq3C,mCAjLJ,SAA4CyJ,GACxC93E,EAAUtE,QAAQ,4BAA6Bo+E,EAClD,EAgLGc,6BA9KJ,SAAsCC,GAClC7b,EAAa6b,EACb76E,EAAUtE,QAAQ,2BAA4Bo+E,EACjD,EA4KGgB,4BA1KJ,SAAqCC,GACjClB,EAAoBkB,CACvB,GA2KD,MAAO,CACHC,SAAUlB,EACVmB,cAAeP,EAClB,ECxPLQ,GAAe,CAACzjD,EAA0Bj7B,KACtC,MAAMwD,EAA8B25E,KAC9BwB,EAA2C,CAAA,EACjD,IAAIC,GAA0B,EAG9B,MAAMxwC,EAAU4wB,GAAY9b,KAwH5B,SAAS27B,EAAkBna,EAA0Dx5D,EAA2D9M,GAC5I,IAAI0M,EACiB,iBAAV45D,EACP55D,EAAW45D,EACH13B,GAAkB03B,KAC1B55D,EAAW45D,EAAM3xE,IAErB,MAAM2D,EAAShH,OAAOD,OAAOkvF,GAASpyE,MAAMuyE,GACMA,EAASN,SACpCpwC,QAAQj5C,QAAQk7C,GAAMA,EAAEt9C,KAAO+X,IACtCta,SAEhB,GAAIkG,EAIA,MAHuB,mBAAZwU,GACPA,EAAQxU,EAAO8nF,UAEZ9nF,EAAO8nF,SACU,mBAAVpgF,GACdA,EAAM,uCAEb,CAED,SAAS2gF,EAAard,GAClB,OAAKA,EAGE,IAAI9oE,SAAQ,CAACiW,EAAKgmE,KACrB,MAAMmK,EAAeL,EAAQjd,GAC7B,GAAIsd,EACAnwE,EAAImwE,EAAaR,cACd,CACH,MAAMvyD,EAAKgzD,GAAcxZ,IACjBA,EAAM1yE,KAAO2uE,IACbz1C,IACApd,EAAI42D,GACP,GAER,KAbM7sE,QAAQ6H,OAAO,IAAI9N,MAAM,2BAevC,CAyBD,SAASssF,EAAa3gF,GAClB,OAAOkF,EAAUnF,IAAI,cAAeC,EACvC,CAwDD,SAASo0C,EAAUgvB,EAAiBgD,GAChC,MAAMe,EA1BV,SAAqB/D,GACjB,GAAKid,EAAQlhF,eAAeikE,GAUxB,OAAOid,EAAQjd,GAVmB,CAElC,MAAMwd,EAAoChC,GAAaxb,EAASzmC,EAAYt0B,UAC5Eg4E,EAAQjd,GAAWwd,EAEnB,MAAMzZ,EAAQyZ,EAAoBV,SAGlC,OAFAh7E,EAAUtE,QAAQ,cAAeumE,GAE1ByZ,CACV,CAGJ,CAaiBC,CAAYzd,GAE1B,OADA+D,EAAMgZ,cAAc/rC,UAAUgyB,GACvBe,CACV,CAED,SAAS0Y,EAAa1Y,EAAqBz0B,GAClCy0B,IAGLA,EAAMgZ,cAAcN,aAAantC,GApBrC,SAAuBguC,GACnB,MAAMvZ,EAAQuZ,EAAaR,SACE,IAAzB/Y,EAAMr3B,QAAQ59C,gBACPmuF,EAAQlZ,EAAM1yE,IACrB4T,GAAS6xE,eAAe/S,EAAM1yE,IAC9ByQ,EAAUtE,QAAQ,gBAAiBumE,GAE1C,CAcG2Z,CAAc3Z,GACjB,CAoCD,SAAS4Z,EAAyB3a,GAC9B,IAAI55D,EAMJ,MALqB,iBAAV45D,EACP55D,EAAW45D,EACH13B,GAAkB03B,KAC1B55D,EAAW45D,EAAM3xE,IAEdrD,OAAOD,OAAOkvF,GAASpyE,MAAMuyE,GACVA,EAASL,cACJrwC,QAAQj5C,QAAQpC,GAAOA,IAAO+X,IAC7Cta,QAEnB,CA7SDd,OAAOC,KAAKy+C,GAASl8C,SAAS4B,IAC1B,MAAMk9C,EAAM5C,EAAQt6C,GACd4tE,EAAU1wB,EAAIxW,IAAIknC,QAClBgD,EAAQ1zB,EAAIxW,IAAIznC,GAEjBk6C,GAAmBy0B,IACpBhvB,EAAUgvB,EAASgD,EACtB,IAGL1F,GAAYxM,WAAWniB,IAEnB8tC,EADckB,EAAyBhvC,EAAE7V,KACrB6V,EAAE,IAG1BpV,EAAY8/C,sBAAsBO,KAgPlC,SAAkCvpF,GAC9B,MAAM2vE,EAAU3vE,EAAM2vE,QAChB52D,EAAW/Y,EAAM+Y,SACjBkmC,EAAMguB,GAAY35C,IAAIva,GAC5B,IAAKkmC,EACD,OAEJ,MAAMsuC,EAAeD,EAAyBruC,EAAIxW,KAGlD,GAAIwS,GAAkB00B,GAElB,YADAyc,EAAamB,EAActuC,GAI/B,GAAIhE,GAAkBsyC,KAAkBtyC,GAAkB00B,GAEtD,YADAhvB,EAAUgvB,EAAS1wB,EAAIxW,IAAIznC,IAI3BusF,EAAad,SAASzrF,KAAO2uE,GAKrC,SAAoB1wB,EAAoBljC,EAAcggB,GAClD,MAAM42C,EAAQ1zB,EAAIxW,IAAIznC,GAChBwsF,EAAYZ,EAAQ7wE,GAC1BqwE,EAAaoB,EAAWvuC,GACxB,MAAMwuC,EAAU9sC,EAAU5kB,EAAI42C,GAC9B1zB,EAAI4+B,OAAOmC,mBAAmByN,EAAQhB,SAAUe,EAAUf,UAC1Dh7E,EAAUtE,QAAQ,eAAgBwlE,EAAO52D,EAAMggB,EAClD,CAXO2xD,CAAWzuC,EAAKsuC,EAAad,SAASzrF,GAAI2uE,EAEjD,CAtQG+P,CAAyB6J,EAAW,IAGxCrgD,EAAY+/C,gCAAgCM,IACxC,MACM7V,EAAwCoZ,EAD7BvD,EAAWxwE,UAE5B,QAAqB,IAAV26D,EAAuB,CAC9B,MAAMia,EAA4Bf,EAAQlZ,EAAM1yE,KAEhB,IAA5B6rF,IACAA,EAAyBnZ,EAAMr3B,QAAQ59C,QAG3CouF,IAC+B,IAA3BA,IACAA,GAA0B,EAC1Bc,EAAYjB,cAAc5M,mCAAmCyJ,GAEpE,KAGLrgD,EAAYggD,0BAA0B55E,IAClC,MAAMq+E,EAA4Bf,EAAQt9E,EAAKqgE,SAC3Cge,GACAA,EAAYjB,cAAcL,6BAA6B/8E,EAAK89C,QAC/D,IAGLlkB,EAAYigD,qBAAqB75E,IAC7B,MAAM29E,EAAeL,EAAQt9E,EAAKqgE,SACf,eAAfrgE,EAAKtP,QACDitF,eAAAA,EAAcR,WACdQ,EAAaP,cAAcH,6BAA4B,GAE3D96E,EAAUtE,QAAQ,mBAAoBmC,EAAKqgE,UACrB,YAAfrgE,EAAKtP,SACRitF,eAAAA,EAAcR,WACdQ,EAAaP,cAAcH,6BAA4B,GAE3D96E,EAAUtE,QAAQ,gBAAiB8/E,EAAaR,UACnD,IAyPL,MAAMmB,EAA6C,CAC/C,MAAIzkC,GACA,OAtPR,iBACI,OAAO2jC,EAAuC,QAArBngF,EAAAu8B,EAAY6/C,iBAAS,IAAAp8E,EAAAA,EAAIu8B,EAAYigB,KACjE,CAoPcA,EACV,EACD/6B,OApPJvlB,eAAsB/D,GAClB,GAAIm2C,GAAkBn2C,GAClB,MAAM,IAAIlE,MAAM,2BAGpB,GAAIq6C,GAAkBn2C,EAAQ8oF,UAAYvuF,MAAMC,QAAQwF,EAAQ8oF,SAAqC,IAA1B9oF,EAAQ8oF,OAAOnvF,OACtF,MAAM,IAAImC,MAAM,kCAGpB,MAAMitF,SAAEA,SAAmBj5E,GAASqvE,aAAa,eAAgB,CAC7Dn/E,YAEE8oF,EAAUC,EAAsB1lF,KAAKwnE,GAChCqd,EAAard,KAExB,OAAO9oE,QAAQof,IAAI2nE,EACtB,EAqOG9+E,MAnOJjG,eAAqBilF,EAAoDhpF,GACrE,GAAIm2C,GAAkB6yC,GAClB,MAAM,IAAIltF,MAAM,yBAGpB,IAAI+uE,EAAU,GAOd,GALIA,EADqB,iBAAdme,EACGA,EAEAA,EAAU9sF,GAGpBi6C,GAAkBn2C,GAClB,MAAM,IAAIlE,MAAM,iCAGdgU,GAASqvE,aAAa,aAAc,CACtCtU,UACA7qE,WAEP,EAgNGqsD,KA9MJ,SAAch4C,GACV,MAAMxU,EAA2ChH,OAAOC,KAAKgvF,GAASzkF,KAAKwnE,IACvE,GAAIid,EAAQjd,GACR,OAAOid,EAAQjd,GAAS8c,QAC3B,IAOL,MAHuB,mBAAZtzE,GACPA,EAAQxU,GAELA,CACV,EAmMGmoF,oBACAE,eACAe,WA1JJ,iBACI,OAAOf,EAAkC,QAArBrgF,EAAAu8B,EAAY6/C,iBAAS,IAAAp8E,EAAAA,EAAIu8B,EAAYigB,KAC5D,EAyJG+jC,eACAc,eAjIJ,SAAwBzhF,GACpB,OAAOkF,EAAUnF,IAAI,gBAAiBC,EACzC,EAgIG0hF,UA9IJplF,eAAyB8mE,GAIrB,aAHM/6D,GAASqvE,aAAa,iBAAkB,CAC1CtU,YAEGA,CACV,EA0IGue,OA1JJrlF,eAAsB8mE,EAAiB3qB,GACnC,IAAK/J,GAAkB+J,KAAc5J,GAAU4J,GAC3C,MAAM,IAAIpkD,MAAM,oCAEpBokD,IAAY/J,GAAkB+J,IAAYA,QACpCpwC,GAASqvE,aAAa,cAAe,CACvCtU,UACA7qE,QAAS,CAAEkgD,aAElB,EAkJGmpC,aA5HJ,SAAsB5hF,GAClB,IAAKA,EACD,MAAM,IAAI3L,MAAM,iCAEpB,GAAI2L,GAAgC,mBAAbA,EACnB,MAAM,IAAI3L,MAAM,wCAEpB,OAAO6Q,EAAUnF,IAAI,mBAAoBC,EAC5C,EAqHG6hF,UAnHJ,SAAmB7hF,GACf,IAAKA,EACD,MAAM,IAAI3L,MAAM,iCAEpB,GAAI2L,GAAgC,mBAAbA,EACnB,MAAM,IAAI3L,MAAM,wCAEpB,OAAO6Q,EAAUnF,IAAI,gBAAiBC,EACzC,GAkHD,MAAO,CACH8hF,UAAWT,EACXU,aAJ2B,CAAEC,cAtIjC,SAAuBhiF,GACnB,OAAOkF,EAAUnF,IAAI,eAAgBC,EACxC,GAyIA,ECpVLiiF,GAAe,CAACp1C,EAA+BnrC,EAAqC6gE,EAAyDC,EAAuD0f,EAAiDh0B,KACjP,MAAMhpD,EAA8B47D,KAC9Br2C,EAAU/oB,EAChB,IAAI2/E,EACA1kD,EAEJ+jC,GAAYloE,KAAKiyB,GAEjB,MAAM03D,EAAU,IAAI7nF,SAAc,CAACC,EAAS4H,KHhBjC,EAAC0qC,EAA+BnrC,EAAqC6gE,EAAyDC,EAAuDC,EAAoDvU,WACpP,MAAMzjC,EAAU/oB,EAChB,GAAuB,IAAnBwsD,EAGA,MADAzjC,EAAQzV,MAAM,iBACR,IAAI3gB,MAAM,qBACb,OAAI65D,GAAkB,GAEzBzjC,EAAQzV,MAAM,mBACP,IAAIotE,GAAGv1C,EAAKpiB,EAAS83C,EAAkBC,EAAkBC,EAAmB7oE,OAAOO,SAASqS,SAA0C,QAAhCpM,EAACxG,OAAeyoF,wBAAgB,IAAAjiF,OAAA,EAAAA,EAAE3L,IAAI+D,QAI5I,IAAI4pF,GAAGv1C,EAAKpiB,EAAS83C,EAAkBC,EAAkBC,GAAmBjqE,MACtF,EGGG8pF,CAAYz1C,EAAKpiB,EAAS83C,EAAkBC,EAAkB0f,EAAgBh0B,GACzElsD,MAAMonC,IACHzM,EAAcyM,EACdi4C,EAASjB,GAAch3C,GACvBm1B,GAAgB/lE,KAAK4wC,EAAI/gC,SAAUwkC,EAAKpiB,GACxClwB,GAAS,IAEZvD,OAAOkC,IACJ,MAAMqH,EAAM,iEAAiErH,EAAE4I,UAC/E2oB,EAAQ3qB,MAAMS,EAAKrH,GACnBiJ,EAAO,IAAI9N,MAAMkM,GAAK,GACxB,IAOV,SAASq8C,IACL,MAAM2lC,EAAW7hB,GAAYK,WAAWpkC,EAAYigB,MACpD,OAAO2lC,EAAWA,EAASrmD,SAAMvjC,CACpC,CA4GD,SAAS6pF,EAAYxiF,GACjB,OAAOkF,EAAUnF,IAAI,eAAgBC,EACxC,CAED,SAASyiF,EAAcziF,GACnB,OAAOkF,EAAUnF,IAAI,iBAAkBC,EAC1C,CAsID,OAJA0gE,GAAYkB,eARZ,SAA2B7vB,GACvB7sC,EAAUtE,QAAQ,eAAgBmxC,EAAE7V,IACvC,IAODwkC,GAAYxM,WALZ,SAA6BniB,GACzB7sC,EAAUtE,QAAQ,iBAAkBmxC,EAAE7V,IACzC,IAMM,CACH0gB,KACAp6C,KAxPJ,SAAc1Q,EAAc4lB,EAAanf,EAAmDqU,EAAsE9M,GAC9J,OAAO8lE,GAAM3J,oBAAmB,KAC5B,GAAIiN,GAAwBp3E,GACxB,MAAM,IAAIuC,MAAM,+BAEpB,GAAI60E,GAAwBxxD,GACxB,MAAM,IAAIrjB,MAAM,8BAGpB,IAAKy9C,GAAuBv5C,GAAU,CAClC,MAAMmqF,EAAenqF,EACrB,IAAK,MAAMw9B,IAAQ,CAAC,YAAa,YAAa,WAAY,WAAY,QAAS,SAAU,MAAO,QAC5F,GAAIA,KAAQ2sD,EAAc,CACtB,MAAM5xF,EAAQ4xF,EAAa3sD,GAC3B,GAAI+b,GAAuBhhD,GAAQ,QACxB4xF,EAAa3sD,GACpB,QACH,CACD,IAAKuyC,GAAcx3E,GAAQ,CAEvB,MAAM,IAAIuD,MADS,GAAG0hC,qBAEzB,CACD,IAA2B,UAAvB2sD,EAAa3sD,IAA4C,WAAvB2sD,EAAa3sD,KAC3CjlC,GAAS,EAAG,CAEZ,MAAM,IAAIuD,MADS,GAAG0hC,8BAEzB,CAER,CAER,CACD,OAAO4G,EAAYn6B,KAAK1Q,EAAM4lB,EAAKnf,EAAQ,GAC5CqU,EAAS9M,EACf,EAwNGmO,KAtNJ,SAAcnc,EAAc8a,EAAsE9M,GAC9F,MAAMgwC,EAA4C4wB,GAAY9b,KAExD+9B,EAAoBvxF,OAAOC,KAAKy+C,GAASx+C,QAAmD,CAACC,EAAM60E,WACrG,MAAMxsE,EAAwBk2C,EAAQs2B,GAItC,OAHe,QAAXhmE,EAAAxG,aAAM,EAANA,EAAQsiC,WAAG,IAAA97B,OAAA,EAAAA,EAAEtO,QAASA,GACtBP,EAAKmD,KAAKkF,EAAOsiC,KAEd3qC,CAAI,GACZ,IAGH,GADYoxF,EAAkB,GAK1B,MAHuB,mBAAZ/1E,GACPA,EAAQ+1E,EAAkB,IAEvBA,EAAkB,GAEJ,mBAAV7iF,GACPA,EAAM,gCAAkChO,EAGnD,EAiMG8wF,SA/LJ,SAAkBnuF,EAAYmY,EAAsE9M,GAChG,MAAMgwC,EAA4C4wB,GAAY9b,KACxD+9B,EAAoBvxF,OAAOC,KAAKy+C,GAASx+C,QAAmD,CAACC,EAAM60E,KACrG,MAAMxsE,EAAwBk2C,EAAQs2B,GAItC,YAHsB,IAAXxsE,GAA0BA,EAAOsiC,IAAIznC,KAAOA,GACnDlD,EAAKmD,KAAKkF,EAAOsiC,KAEd3qC,CAAI,GACZ,IAEH,GADYoxF,EAAkB,GAK1B,MAHuB,mBAAZ/1E,GACPA,EAAQ+1E,EAAkB,IAEvBA,EAAkB,GAEJ,mBAAV7iF,GACPA,EAAM,mCAAqCrL,EAGtD,EA4KGmwD,KA1KJ,SAAch4C,GACV,MAAMkjC,EAA4C4wB,GAAY9b,KAExD+9B,EAAgEvxF,OAAOC,KAAKy+C,GAC7El0C,KAAKpG,GACKs6C,EAAQt6C,GAAG0mC,MAG1B,GAAuB,mBAAZtvB,EACP,OAAO+1E,EAGX/1E,EAAQ+1E,EACX,EA8JGtrE,MArQJ,WACI,OAAO8qE,CACV,EAoQGzsB,cAAe8sB,EACfA,cACA7C,gBAAiB8C,EACjBA,gBACAI,cA/IJ,SAAqB7iF,GACjB,IAAI8iF,EACAC,GAAe,EAQnB,OAPAZ,EAAQngF,MAAK,KACL+gF,IAGJD,EAAYnmD,EAAY0/C,YAAYr8E,GAAS,IAG1C,KACH+iF,GAAe,EACXD,GACAA,GACH,CAER,EAgIGE,cA9HJ,SAAqBhjF,GACjB,IAAI8iF,EACAC,GAAe,EAQnB,OAPAZ,EAAQngF,MAAK,KACL+gF,IAGJD,EAAYnmD,EAAY2/C,YAAYt8E,GAAS,IAG1C,KACH+iF,GAAe,EACXD,GACAA,GACH,CAER,EA+GGl9B,0BA7GJ,SAAmC5lD,GAC/B,IAAI8iF,EACAC,GAAe,EAQnB,OAPAZ,EAAQngF,MAAK,KACL+gF,IAGJD,EAAYnmD,EAAYipB,0BAA0B5lD,GAAS,IAGxD,KACH+iF,GAAe,EACXD,GACAA,GACH,CAER,EA8FGG,qBAxDJ,SAA8BjjF,GAC1B,OAAO28B,EAAYogD,4BAA4B/8E,EAClD,EAwDG,UAAIqhF,GACA,OAAOA,EAAOS,SACjB,EACDjF,iBAjGJ,SAA0B78E,GACtB,IAAI8iF,EACAC,GAAe,EAQnB,OAPAZ,EAAQngF,MAAK,KACL+gF,IAGJD,EAAYnmD,EAAYkgD,iBAAiB78E,GAAS,IAG/C,KACH+iF,GAAe,EACXD,GACAA,GACH,CAER,EAkFGhG,kBAhFJ,SAA2B98E,GACvB,IAAI8iF,EACAC,GAAe,EAQnB,OAPAZ,EAAQngF,MAAK,KACL+gF,IAGJD,EAAYnmD,EAAYmgD,kBAAkB98E,GAAS,IAGhD,KACH+iF,GAAe,EACXD,GACAA,GACH,CAER,EAiEGvG,QA3DJ,SAAiBv8E,GACb,IAAI8iF,EACAC,GAAe,EAQnB,OAPAZ,EAAQngF,MAAK,KACL+gF,IAGJD,EAAYnmD,EAAY4/C,QAAQv8E,GAAS,IAGtC,KACH+iF,GAAe,EACXD,GACAA,GACH,CAER,EA4CGtX,cA1CJ,SAAuB6M,EAAkBr8E,GACrC,OAAO2gC,EAAY6uC,cAAc6M,EAAUr8E,EAC9C,EAyCGuvE,UAvCJ,SAAmB8M,EAAkBr8E,GACjC,OAAO2gC,EAAY4uC,UAAU8M,EAAUr8E,EAC1C,EAsCGyxE,UA9KJ,SAAmBl1E,GACf,MAAMm6C,EAAMkK,IACNwpB,EAAQ1zB,EAAMA,EAAIj+C,GAAK,GAC7B,OAAO4T,GAASolE,UAAUrH,EAAO7tE,EACpC,EA2KGggF,YAzKJ,SAAqBC,GACjB,OAAOnwE,GAASkwE,YAAYC,EAC/B,EAyKA,EC9RU,IAAA0K,GAAA,UA5Bf,WAAAnyF,GACYyD,KAAO2uF,QAAsC,EAyBxD,CAvBU,WAAAC,CAAYC,GACf7uF,KAAK2uF,QAAU3uF,KAAK2uF,QAAQtsF,OAAOwsF,EACtC,CAEM,SAAAC,GACH9uF,KAAK2uF,QAAU,EAClB,CAEM,GAAApjF,CAAI++B,GACPtqC,KAAK2uF,QAAQzuF,KAAKoqC,EACrB,CAED,OAAWplB,GACP,OAAOllB,KAAK2uF,OACf,CAEM,KAAAI,CAAMF,GACT,OAAO7uF,KAAK2uF,QAAQtsF,OAAOwsF,EAC9B,CAEM,KAAAG,CAAMH,GACT,OAAO7uF,KAAK+uF,MAAMF,GAAW,EAChC,GClBS,MAAOI,GAIjB,WAAA1yF,CAAoBiL,EAAyC0nF,EAAiElkF,EAAqCkC,GAA/IlN,KAAMwH,OAANA,EAAyCxH,KAAgBkvF,iBAAhBA,EAAiElvF,KAASgL,UAATA,EAAqChL,KAAMkN,OAANA,EAC/JlN,KAAKsmB,QAAU9e,EAAO6wC,IACtBr4C,KAAKmvF,wBACR,CAEM,eAAAC,CAAgB5jF,GACnB,OAAOxL,KAAKgL,UAAUO,IAAI,gBAAiBC,EAC9C,CAEO,eAAAy0D,GAEJ,GAA6B,oBAAlBvqB,cAA+B,CACtC,MAAMr4C,EAAUq4C,cAAc6rB,aAC9B,OAAOlkE,GAAWA,EAAQ00E,MAAQ10E,EAAQ00E,KAAKsd,eAClD,CAGD,MAAMh4C,EAAar3C,KAAKkvF,mBACxB,IAAK73C,EACD,OAAO,EAGX,IAAKA,EAAW8hB,WACZ,OAAO,EAGX,MAAM40B,EAAW12C,EAAW+Q,GAAGhjD,OACzB0sD,EAAaza,EAAW+Q,GAAG5M,SAEjC,SAAKsW,IAAei8B,IAIbj8B,EAAWnS,MAAM1/C,KAAO8tF,EAAS9tF,EAC3C,CAEO,sBAAAkvF,GACJnvF,KAAKsmB,QAAQsf,SA/CS,yBA+CqEG,IACvF,MAAMupD,EAAWtvF,KAAKgL,UAAUoB,QAAQ,gBAAiB25B,IACrDupD,aAAQ,EAARA,EAAU5xF,QAAS,GACnBsC,KAAKkN,OAAOgL,KAAK,+FAErB,MAAMq3E,EAAgBD,EAAS,GACzBE,EAAwBxvF,KAAKwH,OAAOgoF,sBAE1C,GAAqC,kBAA1BA,GAAuCA,EAC9C,MAAO,CAAEA,yBACN,GAAIlxF,MAAMC,QAAQixF,IAA0BA,EAAsB9xF,OAAS,EAC9E,MAAO,CAAE8xF,yBAGb,MAAM5rF,EAAuD,CAAE6rF,cAAeF,aAAA,EAAAA,EAAeE,cAAeC,qBAAiBvrF,GAO7H,OAJInE,KAAKigE,oBACLr8D,EAAO8rF,gBAAkBH,aAAA,EAAAA,EAAeG,iBAGrC9rF,CAAM,GAEpB,ECtEmB,SAAA+rF,GAAmBC,GACvC,IAAKA,EACD,OAAOA,EAGX,GAAItxF,MAAMC,QAAQqxF,GACd,OAAOA,EAAUxoF,KAAKkjC,GACXqlD,GAAmBrlD,KAIlC,GAAyB,iBAAdslD,GAA+C,iBAAdA,GAA+C,kBAAdA,EACzE,OAAOA,EAIX,OAAOhzF,OAAOC,KAAK+yF,GAAW9yF,QAAO,CAAC4uB,EAAaxQ,WAC/C,MACM20E,EAAiBF,GADTC,EAAU10E,IAGxB,IAAIle,EAAMke,EAMV,OALc,QAAVtP,EAAAsP,EAAQ,UAAE,IAAAtP,OAAA,EAAAA,EAAE5G,iBAAkBkW,EAAQ,KACtCle,EAAMke,EAAQ,GAAGlW,cAAgBkW,EAAQ0iD,OAAO,IAGpDlyC,EAAY1uB,GAAO6yF,EACZnkE,CAAW,GAXkB,CAAA,EAa5C,CC9Bc,MAAOokE,GAsBjB,WAAAvzF,CAAYgS,GACRvO,KAAK1C,KAAOiR,EAAKjR,KACjB0C,KAAK5D,KAAOmS,EAAKnS,KACjB4D,KAAK+vF,WAAaxhF,EAAKwhF,WACvB/vF,KAAK3C,QAAUkR,EAAKlR,QACpB2C,KAAKg/B,SAAWzwB,EAAKywB,SACrBh/B,KAAKgoB,QAAUzZ,EAAKyZ,QACpBhoB,KAAK4nE,SAAWr5D,EAAKq5D,QACxB,ECrBL,MAAMooB,GAAuB,kBAEf,MAAOC,GAKjB,WAAA1zF,CAAoBiL,EAAyC40B,EAA+BpxB,EAA6BkC,GAArGlN,KAAMwH,OAANA,EAAyCxH,KAAMo8B,OAANA,EAA+Bp8B,KAASgL,UAATA,EAFpFhL,KAAiCkwF,mCAAG,EAGxClwF,KAAKimE,WAAaz+D,EAAOy+D,WACzBjmE,KAAK8kB,SAAW,IAAImqE,GAAgBznF,EAAQA,EAAO2oF,eAAgBnlF,EAAWkC,GAC9EkvB,EAAOpD,WACV,CAEM,sBAAMo3D,CAAiB9yF,SAEpB0C,KAAKqwF,iBADQ,sBACqB,CAAE/yF,QAE7C,CAEM,wBAAMgzF,GAETtwF,KAAKqwF,iBADc,wBAGtB,CAEM,sBAAME,GACT,MAEM3lC,SADe5qD,KAAKqwF,iBADP,qBAEGlxD,SACtB,GAAKyrB,EAGL,OAAI5qD,KAAKwwF,aACE5lC,EAEJ5qD,KAAKowD,OAAO32C,MAAMg3E,GAAMA,EAAEnzF,OAASstD,EAAOttD,MAAmB,WAAXmzF,EAAEr0F,MAC9D,CAEM,KAAAymB,GACH,MAAyB,qBAArB7iB,KAAKwH,OAAO8gD,KACLtoD,KAAKo8B,OAAOs0D,YAEhB1wF,KAAKo8B,OAAOvZ,KACtB,CAEM,IAAA8tE,CAAK/lC,GACR,OAAO,IAAI9kD,SAAyC,CAACC,EAAS4H,aAI1D,GAFA3N,KAAK4wF,oBAED12C,GAAkB0Q,GAClB,OAAOj9C,EAAO,IAAI9N,MAAM,uBAG5B,GAAIs6C,GAAmByQ,EAAOttD,MAC1B,OAAOqQ,EAAO,IAAI9N,MAAM,qCAGxBs6C,GAAmByQ,EAAOxuD,QAC1BwuD,EAAOxuD,KAAO,UAGb+9C,GAAmByQ,EAAOtiC,cAC3BsiC,EAAOxuD,KAAO,YAGlB,MAAMy0F,EAAqC,CACvCvzF,KAAMstD,EAAOttD,KACblB,KAAMwuD,EAAOxuD,KACbiB,gBAASuO,EAAAg/C,EAAOvtD,uBAAW,CAAE,EAC7B2hC,iBAAUkc,EAAA0P,EAAO5rB,wBAAY,CAAE,EAC/Bj7B,QAAS,CAAE,GAGf,GAAoB,aAAhB6mD,EAAOxuD,KAAqB,CAC5B,IAAIk6D,EAAQ1L,EAAOtiC,WACnB,IAAKguC,EAAO,CACR,IAAKt2D,KAAKimE,WAAWkB,WAAWhO,WAC5B,OAAOxrD,EAAO,IAAI9N,MAAM,gFAE5By2D,EAAQt2D,KAAKimE,WAAWkB,WAAW7+C,UACtC,CACDuoE,EAAavoE,WAAaguC,CAC7B,KAAM,IAAoB,WAAhB1L,EAAOxuD,KAWd,OAAOuR,EAAO,IAAI9N,MAAM,eAAe+qD,EAAOxuD,0BAV1CkC,MAAMC,QAAQqsD,EAAOkmC,mBACrBD,EAAa9sF,QAAQ+sF,gBAAkBlmC,EAAOkmC,iBAE9CxyF,MAAMC,QAAQqsD,EAAOiO,aACrBg4B,EAAa9sF,QAAQ80D,UAAYjO,EAAOiO,WAET,kBAAxBjO,EAAOmmC,eACdF,EAAa9sF,QAAQgtF,aAAenmC,EAAOmmC,aAIlD,CAED/wF,KAAKgxF,qBAAqB,aAAcH,EAAc9qF,EAAS4H,EAAO,GAE7E,CAEM,OAAAylE,CAAQrvE,GACX,OAAO,IAAI+B,SAAsD,CAACC,EAAS4H,eAGvE,GAFA3N,KAAK4wF,oBAED12C,GAAkBn2C,GAClB,OAAO4J,EAAO,IAAI9N,MAAM,iCAG5B,GAAIs6C,GAAmBp2C,EAAQzG,MAC3B,OAAOqQ,EAAO,IAAI9N,MAAM,sCAW5B,GARIs6C,GAAmBp2C,EAAQ3H,QAC3B2H,EAAQ3H,KAAO,UAGd+9C,GAAmBp2C,EAAQktF,oBAC5BltF,EAAQ3H,KAAO,YAGE,aAAjB2H,EAAQ3H,KAAqB,CAI7B,GAHI89C,GAAkBn2C,EAAQo8C,sBAC1Bp8C,EAAQo8C,oBAAqB,GAES,kBAA/Bp8C,EAAQo8C,mBACf,OAAOxyC,EAAO,IAAI9N,MAAM,oDAE5BkE,EAAQktF,iBAA+C,QAA5BrlF,EAAA7H,EAAQktF,wBAAoB,IAAArlF,EAAAA,EAAA5L,KAAKimE,WAAWkB,WAAW7+C,UACrF,CAWD,GARK4xB,GAAkBn2C,EAAQmtF,wBAC3BntF,EAAQotF,sBAAwBptF,EAAQmtF,sBAGxCh3C,GAAkBn2C,EAAQotF,yBAC1BptF,EAAQotF,uBAAwB,IAG/B92C,GAAUt2C,EAAQotF,uBACnB,OAAOxjF,EAAO,IAAI9N,MAAM,uDAO5B,GAJIq6C,GAAkBn2C,EAAQqtF,WAC1BrtF,EAAQqtF,QAAUrtF,EAAQotF,wBAGzB92C,GAAUt2C,EAAQqtF,SACnB,OAAOzjF,EAAO,IAAI9N,MAAM,yCAG5B,IAAKq6C,GAAkBn2C,EAAQ1G,WAAagzB,GAAStsB,EAAQ1G,SACzD,OAAOsQ,EAAO,IAAI9N,MAAM,yCAG5B,IAAKq6C,GAAkBn2C,EAAQiQ,UAAuC,iBAApBjQ,EAAQiQ,QACtD,OAAOrG,EAAO,IAAI9N,MAAM,yCAG5BkE,EAAQ1G,QAA6B,QAAnB69C,EAAAn3C,EAAQ1G,eAAW,IAAA69C,EAAAA,EAAA,CAAA,EAErC,MAAMm2C,EAA2C,CAC7CC,eAAgBvtF,EAAQktF,iBACxB9wC,mBAAoBp8C,EAAQo8C,mBAC5BoxC,0BAA2BxtF,EAAQwtF,0BAInCC,qBAAsBztF,EAAQ0tF,aAE9BN,sBAAuBptF,EAAQotF,sBAC/BO,mBAAoB3tF,EAAQqtF,QAAU,GAAK,CAA2B,QAA1B7yB,EAAAv+D,KAAKimE,WAAWkB,kBAAU,IAAA5I,OAAA,EAAAA,EAAEt+D,KAGtEgsB,EAAyB,CAC3B7vB,KAAM2H,EAAQ3H,KACdkB,KAAMyG,EAAQzG,KACdD,QAAS0G,EAAQ1G,QACjB0G,QAASstF,GAETttF,EAAQiQ,UACRiY,EAAIjY,QAAUjQ,EAAQiQ,SAG1BhU,KAAKgxF,qBAAqB,gBAAiB/kE,EAAKlmB,EAAS4H,GAAQ,EAAK,GAE7E,CAEM,KAAA0mB,CAAMtwB,GACT,OAAO,IAAI+B,SAAsD,CAACC,EAAS4H,KAEvE,GADA3N,KAAK4wF,oBACkB,iBAAZ7sF,EACP,OAAO4J,EAAO,IAAI9N,MAAM,iCAE5B,GAAIs6C,GAAmBp2C,EAAQ4tF,UAC3B,OAAOhkF,EAAO,IAAI9N,MAAM,0CAG5B,MAAMV,EAA0B,IACzB4E,GAGP/D,KAAKgxF,qBAAqB,cAAe7xF,EAAK4G,EAAS4H,GAAQ,EAAK,GAE3E,CAEM,MAAAg4B,CAAOvpC,EAAckB,GACxB,OAAO,IAAIwI,SAAc,CAACC,EAAS4H,KAG/B,GAFA3N,KAAK4wF,qBAEAtzF,EACD,OAAOqQ,EAAO,IAAI9N,MAAM,8BAG5B,IAAKzD,EACD,OAAOuR,EAAO,IAAI9N,MAAM,8BAG5B,MAAMV,EAA8B,CAChC/C,OACAkB,QAGJ0C,KAAKgxF,qBAAqB,eAAgB7xF,EAAK4G,EAAS4H,EAAO,GAEtE,CAEM,IAAAyiD,GAEH,OADApwD,KAAK4wF,oBACElC,GAAMxpE,GAChB,CAEM,MAAAygD,CAAOgpB,EAA4CrmC,GACtD,OAAO,IAAIxiD,SAAqD,CAACC,EAAS4H,KAEtE,GADA3N,KAAK4wF,qBACA12C,GAAkBoO,IACN,UAATA,GAA6B,YAATA,EAEpB,OAAO36C,EAAO,IAAI9N,MAAM,GAAGyoD,oDAGnC,IAAKhqD,MAAMC,QAAQowF,GACf,OAAOhhF,EAAO,IAAI9N,MAAM,sCAE5B,MAAMV,EAAwB,CAC1BmpD,KAAMA,GAAQ,UACdqmC,WAGJ3uF,KAAKgxF,qBAAqB,gBAAiB7xF,EAAK4G,EAAS4H,GAAQ,EAAK,GAE7E,CAEM,OAAOikF,GACV,OAAO,IAAI9rF,SAA2C,CAACC,EAAS4H,KAS5D3N,KAAKgxF,qBAAqB,gBAAiB,CAAA,GARrBptF,IAClB,IAAI+qF,EAA6C3uF,KAAK6xF,gBAAgBjuF,EAAOkuF,SAAS1qF,KAAKkI,GAAM,IAAIwgF,GAAWH,GAAmBrgF,MAC/HsiF,IACAjD,EAAUA,EAAQtsF,QAAQouF,GAAMA,EAAEr0F,OAASw1F,KAE/C7rF,EAAQ4oF,EAAQ,GAGyChhF,GAAQ,EAAK,GAEjF,CAEM,MAAAokF,CAAOnnC,EAAyConC,GACnD,OAAO,IAAIlsF,SAA4B,CAACC,EAAS4H,KAG7C,GAFA3N,KAAK4wF,qBAEAhmC,EACD,OAAOj9C,EAAO,IAAI9N,MAAM,gCAG5B,IAAK+qD,EAAOttD,KACR,OAAOqQ,EAAO,IAAI9N,MAAM,8BAG5B,IAAK+qD,EAAOxuD,KACR,OAAOuR,EAAO,IAAI9N,MAAM,8BAG5B,MAAMV,EAAwB,CAAE/C,KAAMwuD,EAAOxuD,KAAM61F,QAASrnC,EAAOttD,KAAM00F,WAEzEhyF,KAAKgxF,qBAAqB,eAAgB7xF,EAAK4G,EAAS4H,EAAO,GAEtE,CAEM,cAAAukF,CAAetnC,GAClB,OAAO,IAAI9kD,SAAQ,CAACC,EAAS4H,KACzB,IAAKi9C,EACD,OAAOj9C,EAAO,IAAI9N,MAAM,gCAG5B,IAAK+qD,EAAOttD,KACR,OAAOqQ,EAAO,IAAI9N,MAAM,8BAG5B,IAAK+qD,EAAOxuD,KACR,OAAOuR,EAAO,IAAI9N,MAAM,8BAG5B,IAAK+qD,EAAO5rB,SACR,OAAOrxB,EAAO,IAAI9N,MAAM,kCAG5B,MAAMgxF,EAAoB,CACtBvzF,KAAMstD,EAAOttD,KACblB,KAAMwuD,EAAOxuD,KACb4iC,SAAU4rB,EAAO5rB,UAGrBh/B,KAAKgxF,qBAAqB,iBAAkBH,EAAc9qF,EAAS4H,GAAQ,EAAK,GAEvF,CAEM,SAAAu/E,CAAU5vF,EAAcyG,GAC3B,OAAO,IAAI+B,SAAQ,CAACC,EAAS4H,KACzB,IAAKrQ,EACD,OAAOqQ,EAAO,IAAI9N,MAAM,yBAG5B,MAAM2Y,EAAoC,CACtClb,OACAlB,KAAM,SACNiB,SAJJ0G,EAAUA,GAAW,IAIA1G,SAAW,CAAE,EAC9B2hC,SAAUj7B,EAAQi7B,UAAY,CAAE,GAEpCh/B,KAAKgxF,qBAAqB,kBAAmBx4E,EAASzS,EAAS4H,GAAQ,EAAK,GAEnF,CAEM,MAAAw/E,CAAO7vF,EAAcD,EAAe0G,GACvC,OAAO,IAAI+B,SAAsD,CAACC,EAAS4H,KACvE,IAAKrQ,EACD,OAAOqQ,EAAO,IAAI9N,MAAM,yBAE5B,MAAM2Y,EAAoC,CACtClb,OACAlB,KAAM,SACNiB,aACG0G,GAEP/D,KAAKgxF,qBAAqB,eAAgBx4E,EAASzS,EAAS4H,GAAQ,EAAK,GAEhF,CAEM,sBAAMwkF,GAGT,IAAIvnC,SADiB5qD,KAAKqwF,iBADP,qBAEClxD,SAASyrB,OAC7B,GAAKA,EAOL,OAJK5qD,KAAKwwF,eAEN5lC,EAAS5qD,KAAKowD,OAAO32C,MAAMg3E,GAAMA,EAAEnzF,OAASstD,EAAOttD,MAAQmzF,EAAEr0F,OAASwuD,EAAOxuD,QAE1EwuD,CACV,CAEM,sBAAAwnC,GACH,OAAO,IAAItsF,SAAQ,CAACC,EAAS4H,KAEzB3N,KAAKqwF,iBADc,0BAEd7iF,MAAM5J,IACH,MAAMyuF,EAAkBzuF,EAAOu7B,SAC/Bp5B,EAAQssF,EAAgB,IAE3B7vF,MAAMmL,EAAO,GAEzB,CAEM,OAAA0/D,CAAQ7hE,GACX,MAAM5H,EAAS5D,KAAKgL,UAAUO,IAAI,QAASC,GAU3C,OARIkjF,GAAMxpE,IAAIxnB,OAAS,GACnBgxF,GAAMxpE,IAAI9lB,SAASwrD,IACf,IACIp/C,EAASo/C,EACZ,CAAC,MAAO7+C,GAAe,KAIzBnI,CACV,CAEM,SAAA87D,CAAUl0D,GACb,OAAOxL,KAAKgL,UAAUO,IAAI,UAAWC,EACxC,CAEM,SAAAi0D,CAAUj0D,GACb,OAAOxL,KAAKgL,UAAUO,IAAI,UAAWC,EACxC,CAEM,UAAA8mF,CAAW9mF,GACd,OAAOxL,KAAKgL,UAAUO,IAAI,WAAYC,EACzC,CAEM,SAAA+mF,CAAU/mF,GACb,OAAOxL,KAAKgL,UAAUO,IAAI,UAAWC,EACxC,CAEM,OAAAu8E,CAAQv8E,GACX,OAAOxL,KAAKo8B,OAAO2rD,QAAQv8E,EAC9B,CAEM,eAAA4jF,CAAgB5jF,GACnB,OAAOxL,KAAK8kB,SAASsqE,gBAAgB5jF,EACxC,CAEM,gBAAAgnF,CAAiBhnF,GAKpB,OAJ+C,IAA3CxL,KAAKkwF,oCACLlwF,KAAKkwF,mCAAoC,EACzClwF,KAAKyyF,mCAEFzyF,KAAKgL,UAAUO,IAAI,kBAAmBC,EAChD,CAEM,yBAAAknF,CAA0Br1F,GAC7B,OAAO,IAAIyI,SAAQ,CAACC,EAAS4H,KACzB,GAAItQ,GAA8B,iBAAZA,EAClB,OAAOsQ,EAAO,IAAI9N,MAAM,8BAG5B,MAAM2Y,EAA+C,CACjDnb,QAFJA,EAAUA,QAAAA,EAAW,IAIrB2C,KAAKgxF,qBAAqB,+BAAgCx4E,EAASzS,EAAS4H,GAAQ,EAAK,GAEhG,CAEM,oBAAAglF,CAAqBt1F,GACxB,OAAO,IAAIyI,SAAQ,CAACC,EAAS4H,KACzB,GAAItQ,GAA8B,iBAAZA,EAClB,OAAOsQ,EAAO,IAAI9N,MAAM,8BAG5B,MAAM2Y,EAA+C,CACjDnb,QAFJA,EAAUA,QAAAA,EAAW,IAIrB2C,KAAKgxF,qBAAqB,uBAAwBx4E,EAASzS,EAAS4H,GAAQ,EAAK,GAExF,CAEM,SAAM4kB,CAAIj1B,EAAclB,GAC3B,MAAMgG,EAAWpC,KAAKowD,OAAO32C,MAAMg3E,GAAMA,EAAEnzF,OAASA,GAAQmzF,EAAEr0F,OAASA,IACvE,IAAKgG,EACD,MAAM,IAAIvC,MAAM,gCAAgCvC,cAAiBlB,KAErE,OAAOgG,CACV,CAEM,YAAMwwF,CAAOx2F,GAEhB,OADiB4D,KAAKowD,OAAO/tD,QAAQouF,GAAMr0F,IAASq0F,EAAEr0F,MAEzD,CAEM,kBAAMy2F,SAEH7yF,KAAKqwF,iBADQ,iBAEtB,CAEO,UAAAG,GACJ,MAA4B,SAArBxwF,KAAKwH,OAAO8gD,IACtB,CAEO,iBAAAsoC,GACJ,GAAI5wF,KAAKwwF,aACL,MAAM3wF,MAAM,wDAEnB,CAEO,qCAAM4yF,SACJzyF,KAAKwH,OAAO6wC,IAAIzS,SAAS,0BAA0B,CAACG,EAAe0G,KACrEzsC,KAAKgL,UAAUoB,QAAQ,kBAAmB25B,EAAK,GAEtD,CAEO,oBAAAirD,CAAqBhqD,EAAoBjB,EAAkBhgC,EAAgC4H,EAA4BmlF,GAC3H,IACIC,EADAC,EAAsBF,EAG1B,MAAM90E,EAAQtP,GAAMw6D,aACpBnjC,EAAK/nB,MAAQA,EAEb,MAAMi1E,EAAe,KACbD,GAAuBD,GACvBhtF,EAAQgtF,EACX,EAGCt0D,EAA0B,KAE3Bq0D,GACD9yF,KAAKo8B,OAAO4wC,QAAQhvD,EAAOygB,GACtBjxB,MAAK,KACFwlF,GAAsB,EACtBC,GAAc,IAEjBzwF,OAAOuJ,IACJ4B,EAAO5B,EAAI,IAwBvB/L,KAAKqwF,iBAAiBrpD,EAAYjB,EAAM,OAAQ,CAAEtH,4BAC7CjxB,MArBoB5J,IACrB,IAAKA,EAAOu7B,SACR,OAAOxxB,EAAO,IAAI9N,MAAM,yBAA2BmnC,IAGvD,GAAIpjC,EAAOu7B,SAAS5sB,QAAsC,YAA3B3O,EAAOu7B,SAAS5sB,QAAmD,mBAA3B3O,EAAOu7B,SAAS5sB,OAA8B,CACjH,GAAiC,iBAArB3O,EAAe,SACvB,OAAO+J,EAAO,IAAI9N,MAAM+D,EAAOu7B,WAC5B,GAAiC,iBAArBv7B,EAAe,SAC9B,OAAIA,EAAOu7B,SAAS5sB,QAAU3O,EAAOu7B,SAASpuB,OACnCpD,EAAO,IAAI9N,MAAM,GAAG+D,EAAOu7B,SAAS5sB,WAAW1L,KAAKC,UAAUlD,EAAOu7B,SAASpuB,YAE9EpD,EAAO,IAAI9N,MAAM+D,EAAOu7B,UAG1C,CAED4zD,EAAYnvF,EAAOu7B,SACnB8zD,GAAc,IAIbzwF,OAAOuJ,GAAa4B,EAAO5B,IACnC,CAEO,sBAAMskF,CAAiBrpD,EAAoBjB,EAAephC,EAAkDZ,GAChH,OAAI/D,KAAKkzF,+BACQlzF,KAAKwH,OAAO6wC,IAAI3xB,OAAOspE,GAAsB,CAAEx7D,QAASwS,EAAYz4B,KAAMw3B,GAAQphC,EAAQZ,SAE1F/D,KAAKwH,OAAO6wC,IAAI3xB,OAAO,WAAWsgB,IAAcjB,EAAMphC,EAAQZ,EAElF,CAEO,eAAA8tF,CAAgB98D,GACpB,OAAKA,EAIEn4B,OAAOC,KAAKk4B,GAAK3tB,KAAKpG,GAAM+zB,EAAI/zB,KAH5B,EAId,CAEO,sBAAAkyF,GACJ,OAAOlzF,KAAKwH,OAAO6wC,IAAI7xB,UAAU8e,MAAM1gB,GAAWA,EAAOtnB,OAAS0yF,IACrE,ECtiBS,MAAOmD,GAajB,WAAA52F,CAAoB87C,EAAuCrtC,GAAvChL,KAAGq4C,IAAHA,EAAuCr4C,KAASgL,UAATA,EAF1ChL,KAAUozF,WAAG,wBAI1BpzF,KAAK6iB,MAAQ,IAAI/c,SAAc,CAACC,EAAS4H,KACrC3N,KAAKqzF,aAAettF,EACpB/F,KAAKszF,YAAc3lF,CAAM,IAG7B3N,KAAK0wF,YAAc,IAAI5qF,SAAc,CAACC,EAAS4H,KAC3C3N,KAAKuzF,mBAAqBxtF,EAC1B/F,KAAKwzF,kBAAoB7lF,CAAM,GAEtC,CAEM,SAAAqrB,CAAUy6D,GACb,MAAMznE,EAAa+I,GACR/0B,KAAK6xF,gBAAgB98D,GAAK3tB,KAAKkI,GAAMqgF,GAAmBrgF,KAI9DtP,KAAK0zF,4BAWN1zF,KAAKq4C,IAAIrf,UAAUh5B,KAAKozF,WAAY,CAAE52D,cAAe,MAChDhvB,MAAMqF,IACHA,EAAKi7B,QAAQ/H,IACT,MAAMx3B,EAAOw3B,EAAKx3B,KACdA,EAAKolF,YACL3zF,KAAKuzF,qBAETvzF,KAAK4zF,WAAW5nE,EAAUzd,EAAKslF,eAAgBtlF,EAAKolF,YACpD3zF,KAAK8zF,cAAc9nE,EAAUzd,EAAKwlF,kBAClC/zF,KAAKg0F,cAAchoE,EAAUzd,EAAK0lF,kBAClCj0F,KAAKk0F,cAAcloE,EAAUzd,EAAK4lF,kBAClCn0F,KAAKo0F,eAAepoE,EAAUzd,EAAK8lF,mBACnCr0F,KAAKgL,UAAUoB,QAAQ,cAAemC,EAAK,IAG/CsE,EAAKu7B,UAAUriC,IACX,MAAM5M,EAAM,yBAAyBa,KAAKozF,wBAAwBvsF,KAAKC,UAAUiF,KACjF/L,KAAKszF,YAAYn0F,GACjBa,KAAKwzF,kBAAkBr0F,EAAI,IAG/Ba,KAAKqzF,cAAc,IAEtB7wF,OAAOuJ,IACJ,MAAM5M,EAAM,yBAAyBa,KAAKozF,wBAAwBvsF,KAAKC,UAAUiF,KACjF/L,KAAKszF,YAAYn0F,GACjBa,KAAKwzF,kBAAkBr0F,EAAI,KAnC/Bs0F,GACAzzF,KAAKqzF,eAIT/sF,YAAW,KACPtG,KAAKg5B,WAAU,EAAK,GACrB,KA+BV,CAEM,OAAA+uD,CAAQv8E,GACX,OAAOxL,KAAKgL,UAAUO,IAAI,cAAeC,EAC5C,CAEM,OAAAwhE,CAAQhvD,EAAehK,GAI1B,OAHKA,IACDA,EAAU,KAEP,IAAIlO,SAAc,CAACC,EAAS4H,KAC/B,IAAIipC,GAAO,EACX,MAAMt5B,EAActd,KAAK+nF,SAASkC,IAC1BA,EAAYqK,QAAUt2E,IACtB44B,GAAO,EACPt5B,IACAvX,IACH,IAGLO,YAAW,KACFswC,GACDjpC,EAAO,YACV,GACFqG,EAAQ,GAElB,CAEO,yBAAA0/E,GACJ,IACI,OAGmC,IAH5B1zF,KAAKq4C,IACP7xB,UACApf,KAAK/H,GAAMA,EAAE/B,OACb+V,QAAQrT,KAAKozF,WACrB,CAAC,MAAO1uF,GACL,OAAO,CACV,CACJ,CAEO,UAAAkvF,CAAWW,EAAoBztB,GACnC,IAAKytB,EACD,OAEJ,MAAMC,EAAyBC,IAC3B,MAAM7pC,EAAS,IAAIklC,GAAW2E,GAC9B/F,GAAMnjF,IAAIq/C,GACV5qD,KAAKgL,UAAUoB,QAAQ,QAASw+C,EAAO,EAG3C2pC,EAAYn1F,SAASq1F,IACjB,GAAI3tB,EAAY,CACE4nB,GAAMM,OAAO0F,GAAmB10F,KAAK20F,eAAeD,EAAgBD,MAE9ED,EAAsBC,EAE7B,MACGD,EAAsBC,EACzB,GAER,CAEO,aAAAX,CAAcc,GACbA,GAGLA,EAAex1F,SAASy1F,IACpBnG,GAAME,aAAa8F,IAAoB10F,KAAK20F,eAAeD,EAAgBG,KAE3E70F,KAAKgL,UAAUoB,QAAQ,UAAWyoF,EAAc,GAEvD,CAEO,aAAAb,CAAcc,GACbA,GAILA,EAAe11F,SAAS21F,IAEpBrG,GAAME,aAAa8F,IAAoB10F,KAAK20F,eAAeD,EAAgBK,KAC3ErG,GAAMnjF,IAAI,IAAIukF,GAAWiF,IAEzB/0F,KAAKgL,UAAUoB,QAAQ,UAAW2oF,EAAc,GAGvD,CAEO,aAAAb,CAAcc,GACbA,GAILA,EAAe51F,SAAS61F,IACpB,MAAMP,EAAiBhG,GAAMM,OAAO9zE,GAAYlb,KAAK20F,eAAez5E,EAAS,CAAE9e,KAAM64F,EAAc74F,KAAMkB,KAAM23F,EAAchD,YAE7H,IAAKyC,EAED,MAAM70F,MAAM,sDAAsDo1F,EAAc74F,iBAAiB64F,EAAchD,WAGnHyC,EAAep3F,KAAO23F,EAAcjD,QAEpChyF,KAAKgL,UAAUoB,QAAQ,UAAWsoF,EAAe,GAExD,CAEO,cAAAC,CAAeO,EAAyCC,GAC5D,OAAOD,EAAQ53F,OAAS63F,EAAQ73F,MAAQ43F,EAAQ94F,OAAS+4F,EAAQ/4F,IACpE,CAEO,eAAAy1F,CAAgB98D,GACpB,OAAKA,EAIEn4B,OAAOC,KAAKk4B,GAAK3tB,KAAKpG,GAAM+zB,EAAI/zB,KAH5B,EAId,CAEO,cAAAozF,CAAe/B,GAEdA,GAILA,EAAgBjzF,SAASg1F,IACrB,MAAMM,EAAiBhG,GAAMM,OAAO9zE,GAAYlb,KAAK20F,eAAez5E,EAAS,CAAE9e,KAAMg4F,EAAeh4F,KAAMkB,KAAM82F,EAAe92F,SAC/H0C,KAAKgL,UAAUoB,QAAQ,WAAYsoF,EAAe,GAEzD,EC7MS,SAAAU,GAAU5tF,GAEpB,IAAKA,EAAO6wC,IACR,MAAMx4C,MAAM,0BAGhB,IAAK2H,EAAO0F,OACR,MAAMrN,MAAM,6BAIhB2H,EAAO8gD,KAAO9gD,EAAO8gD,MAAQ,OAE7B,MAAMp7C,EAAS1F,EAAO0F,OAChBlC,EAA8Bq/E,KAEpC,IAAIgL,EAQJ,OANI7tF,EAAO8gD,KACP+sC,EAAY,IAAIlC,GAAU3rF,EAAO6wC,IAAKrtC,GAKnC,IAAI8mF,GAAQtqF,EAAQ6tF,EAAWrqF,EAAWkC,EACrD,CCxBc,MAAOooF,GAIjB,WAAA/4F,CACYkjD,EACAxpB,GADAj2B,KAAIy/C,KAAJA,EACAz/C,KAAOi2B,QAAPA,EALJj2B,KAAS0Q,UAAqB47D,KAC9BtsE,KAAWiqE,aAAG,EASfjqE,KAAGklB,IAAGpd,gBACc9H,KAAKu1F,OAA4CC,GAAeC,OAAQ,CAAA,IAC/EruF,IAAIpH,KAAK01F,iBAGtB11F,KAAAuyB,IAAMzqB,MAAO7H,IAChB,MAAMk1E,QAAgBn1E,KAAKu1F,OAA0CC,GAAe/yC,IAAK,CAAExiD,OAC3F,OAAOD,KAAK01F,gBAAgBvgB,EAAQ,EAGjCn1E,KAAU21F,WAAG7tF,gBACO9H,KAAKklB,OAAOzL,MAAMwd,GAAMA,EAAE2+D,YAS9C51F,KAAAu3E,QAAUzvE,MAAO/D,SACK/D,KAAKu1F,OAAeC,GAAeK,QAAS,IAAK9xF,IAIvE/D,KAAA81F,WAAahuF,MAAO/D,SACG/D,KAAKu1F,OAA0BC,GAAeO,WAAY,IAAKhyF,IAItF/D,KAAgBg2F,iBAAGluF,eACF9H,KAAKu1F,OAAwCC,GAAeS,kBAS5Ej2F,KAAAu1F,OAASztF,MAAU0sB,EAAiBzwB,WAET/D,KAAKy/C,KAAK/4B,OAxDvB,uBAwDiD,CAAE3iB,QAAS,IAAKA,GAAWywB,aACtE2K,SAAS5wB,KAG7BvO,KAAA01F,gBAAmBQ,IACvB,MAAMC,EAAmB,IAClBD,EACH3e,QAAU9jE,GAAsBzT,KAAKu3E,QAAQ,CAAEt3E,GAAIi2F,EAASj2F,GAAIwT,UAE9D2iF,EAAgBD,EAAiB1tB,SAGvC,OAFA2tB,EAAc5rF,EAAI4rF,EAAcrzE,KAChCqzE,EAAchhE,EAAI+gE,EAAiB1tB,SAAS9tD,IACrCw7E,CAAgB,CAxD1B,CAiBM,aAAA7Z,CAAcr8E,GAEjB,OADgBD,KAAKu1F,OAA0CC,GAAea,cAAe,CAAEp2F,MAElG,CAiBM,gBAAAq2F,CAAiBv3C,GAEpB,OADA/+C,KAAK4lC,WACE5lC,KAAK0Q,UAAUnF,IAAI,qBAAsBwzC,EACnD,CAmBO,QAAAnZ,GACA5lC,KAAKiqE,cAGTjqE,KAAKiqE,aAAc,EACnBjqE,KAAKy/C,KAAK7Z,SA3EQ,wBA2EkD,CAACG,EAAM0G,KACvE,MAAMt0B,EAAQ4tB,EAAK5tB,MACb5J,EAAOw3B,EAAKx3B,KAClB,GACS,oBADD4J,EAEAnY,KAAK0Q,UAAUtE,QAAQ,qBAAsBmC,EAAKq5D,SAASxgE,IAAIpH,KAAK01F,uBAGpE11F,KAAKi2B,QAAQ/d,KAAK,mBAAmBC,IAE5C,IAER,EAKL,IAAKq9E,GC9FL,IAAIlvE,GACAtO,ID6FJ,SAAKw9E,GACDA,EAAA,QAAA,UACAA,EAAA,WAAA,aACAA,EAAA,OAAA,SACAA,EAAA,IAAA,MACAA,EAAA,cAAA,gBACAA,EAAA,iBAAA,kBACH,CAPD,CAAKA,KAAAA,GAOJ,CAAA,ICnGD,MAAMe,GAA2B,wBA+D1BzuF,eAAe0uF,GAAc/c,EAAkBx5E,GAClDqmB,GAAQI,OAAO,wBAAyB,CACpC+vE,KAAMx2F,QAAAA,EAAM+X,GACZwc,QAAS,gBACTjmB,KAAM,CAAEmoF,WAAYjd,IAE5B,CAWO3xE,eAAe6uF,GAAwB12F,GAC1C,IAKI,aAJqBqmB,GAAQI,OAAO6vE,GAA0B,CAC1DE,KAAMx2F,QAAAA,EAAM+X,GACZwc,QAAS,qBAEC2K,QACjB,CAAC,MAAOz6B,GACL,MACH,CACL,CAgBOoD,eAAe8uF,GAAmBpiE,EAAyCv0B,EAAY8hD,SACpFz7B,GAAQI,OAAO6vE,GAA0B,CAAE/hE,UAASjmB,KAAM,CAAEtO,KAAI8hD,UAC1E,CC9GA,MAAM80C,GAAiB,gBACjBC,GAAmB,yBAEZC,GAIT,WAAAx6F,CAAoB25C,GAAAl2C,KAAQk2C,SAARA,CACnB,CAEM,SAAAld,CAAUxtB,GACbxL,KAAKwL,SAAWA,CACnB,CAEM,YAAAwrF,CAAa15F,EAAckO,GAC9B,IAAKxL,KAAKi3F,UAAU35F,GAChB,OAAOwI,QAAQ6H,OAAO,IAAI9N,MAAM,sBAAsBvC,qBAG1D,MAAMy6B,EAAc/3B,KAAKk3F,kBAAkB55F,GAE3C,OAAO0C,KAAKk2C,SAASld,UAAUjB,GAAa,CAACxpB,EAAMsrB,EAAGs9D,EAAIC,EAAKt9D,KAC3DtuB,EAAS+C,EAAKA,KAAMA,EAAMurB,aAAA,EAAAA,EAAWnB,UAAU,GAEtD,CAGM,mBAAM69D,CAAcl5F,GACvB0C,KAAKsd,cACL,MAAMya,EAAc/3B,KAAKk3F,kBAAkB55F,GAC3C0C,KAAK6pC,sBAAwB7pC,KAAKk2C,SAASld,UAAUjB,GAAa,CAACxpB,EAAMsrB,EAAGs9D,EAAIC,EAAKt9D,KAC7E95B,KAAKwL,UACLxL,KAAKwL,SAAS+C,EAAKA,KAAMA,EAAMurB,aAAS,EAATA,EAAWnB,UAC7C,GAER,CAEM,KAAA/a,GACC5d,KAAKwL,UACLxL,KAAKwL,SAAS,QAAIrH,GAEtBnE,KAAKsd,aACR,CAEM,GAAA4H,GAIH,OAHqBllB,KAAKk2C,SAAShxB,MACM7iB,QAAQ01B,GAAgBA,EAAYzU,WAAWuzE,MAC/CzvF,KAAKiwF,GAAuBA,EAAmBz5B,OAAOi5B,KAElG,CAEM,oBAAMS,CAAeh6F,GACxB,IAAK0C,KAAKi3F,UAAU35F,GAChB,MAAM,IAAIuC,MAAM,wBAAwBvC,oBAG5C,MAAMy6B,EAAc/3B,KAAKk3F,kBAAkB55F,GAErC86B,QAAoBp4B,KAAKk2C,SAAS3jB,IAAIwF,GAE5C,OAAIK,EAAY0+D,IACL92F,KAAKu3F,uBAAuBn/D,GAGhCA,CACV,CAEM,aAAAo/D,CAAcl6F,EAAciR,GAC/B,MAAMwpB,EAAc/3B,KAAKk3F,kBAAkB55F,GAC3C,OAAO0C,KAAKk2C,SAAS91C,OAAO23B,EAAaxpB,EAC5C,CAEM,UAAAkpF,CAAWn6F,EAAciR,GAC5B,MAAMwpB,EAAc/3B,KAAKk3F,kBAAkB55F,GACrCo6F,EAAW13F,KAAK23F,YAAYppF,GAElC,GAAIvO,KAAKk2C,SAAS/e,iBAAkB,CAChC,MAAM2B,EAAoDl8B,OAAOC,KAAK0R,GAAMnH,KAAKpK,IACtE,CACHQ,KAAM,QAAUR,EAChBV,MAAOiS,EAAKvR,OAQpB,OAJI06F,GACA5+D,EAAW54B,KAAK,CAAE1C,KAAMs5F,GAAkBx6F,MAAOo7F,IAG9C13F,KAAKk2C,SAASrd,SAASd,EAAae,EAC9C,CAMG,OALI4+D,IACAnpF,EAAKuoF,IAAoBY,GAItB13F,KAAKk2C,SAAS91C,OAAO23B,EAAa,CAAExpB,QAElD,CAEM,QAAAsqB,CAASv7B,EAAck+B,GAC1B,MAAMzD,EAAc/3B,KAAKk3F,kBAAkB55F,GAE3C,GAAI0C,KAAKk2C,SAAS/e,iBAAkB,CAChC,MAAM2B,EAAoD0C,EAAMp0B,KAAKiuB,IAC1D,CACH73B,KAAM,QAAU63B,EAAE73B,KAClBlB,MAAO+4B,EAAE/4B,UAWjB,OAPAw8B,EAAW1xB,KAAKiuB,IACZ,MAAMqiE,EAAW13F,KAAK23F,YAAYtiE,EAAE/4B,OAChCo7F,GACA5+D,EAAW54B,KAAK,CAAE1C,KAAMs5F,GAAkBx6F,MAAOo7F,GACpD,IAGE13F,KAAKk2C,SAASrd,SAASd,EAAae,EAC9C,CACG,MAAM,IAAIj5B,MAAM,6BAEvB,CAEM,SAAAo3F,CAAU35F,GACb,OAAO0C,KAAKklB,MAAMogB,MAAMsyD,GAAgBA,IAAgBt6F,GAC3D,CAEM,YAAMqoC,CAAOroC,GAChB,IAAK0C,KAAKi3F,UAAU35F,GAChB,MAAM,IAAIuC,MAAM,wBAAwBvC,oBAG5C,MAAMy6B,EAAc/3B,KAAKk3F,kBAAkB55F,SACrC0C,KAAKk2C,SAAStc,QAAQ7B,EAC/B,CAEO,WAAAza,GACAtd,KAAK6pC,iBACL7pC,KAAK6pC,iBAEZ,CAEO,iBAAAqtD,CAAkB55F,GACtB,OAAOu5F,GAAiBv5F,CAC3B,CAEO,WAAAq6F,CAAYppF,GAChB,MAAMspF,EAAej7F,OAAOC,KAAK0R,GAAMlM,QAAQrF,GAAyC,IAAzBA,EAAIqW,QAAQ,WAE3E,GAA4B,IAAxBwkF,EAAan6F,OAAjB,CAIA,GAAIm6F,EAAan6F,OAAS,EACtB,MAAM,IAAImC,MAAM,2DAGpB,OAAOg4F,EAAa,GAAGxxE,MAAM,KAAK9mB,MAAM,GAAG9B,KAAK,IAN/C,CAOJ,CAEO,sBAAA85F,CAAuBO,GAE3B,MAAMC,iBAAEA,KAAqBC,GAASF,EAKhCG,EAAc,CAAE77F,KAHH27F,EAAiB1xE,MAAM,KAAK5oB,KAAK,QAGTu6F,EAAKzpF,KAAK,QAAQwpF,aAGtDC,EAAKzpF,KAAK,QAAQwpF,KAWzB,MATgB,CACZz6F,KAAMw6F,EAAex6F,KACrB60C,KAAM2lD,EAAe3lD,KACrB5jC,KAAM,IACCypF,EAAKzpF,KACR2pF,KAAMD,GAKjB,QC7KQE,GAcT,WAAA57F,CAAoB67F,EAAyC9xE,EAA+Ci1B,EAAwDruC,GAAhJlN,KAAMo4F,OAANA,EAAyCp4F,KAAOsmB,QAAPA,EAA+CtmB,KAAUu7C,WAAVA,EAAwDv7C,KAAMkN,OAANA,EAb5JlN,KAAOq4F,QAAG,OACVr4F,KAAUs4F,WAAG,UACbt4F,KAAau4F,eAAG,EAEhBv4F,KAAQ+M,SAAqBH,KAG7B5M,KAAcw4F,eAAQ,GAEtBx4F,KAAAy4F,4BAA8B,IAAI1qE,IAKtC/tB,KAAKo4F,OAAOp/D,UAAUh5B,KAAKmiB,QAAQrM,KAAK9V,OACxCA,KAAK04F,wCACiB,oBAAXtzF,aAAqD,IAApBA,OAAOO,WAC/C3F,KAAKq4B,eAAkBjzB,OAAOO,SAAiBgzF,eAC3C34F,KAAKq4B,gBACLr4B,KAAK44F,qBAAqB54F,KAAKq4B,gBAG1C,CAEM,SAAAW,CAAUxtB,GACb,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAUpB,MAAMI,EAAKyO,GAAMw6D,aACjBlpE,KAAKw4F,eAAev4F,IAAM,EAE1B,MAAMkmC,EAAkBnmC,KAAK64F,4BAA4BrtF,EAAUvL,GAEnE,GAAID,KAAK84F,WAAY,CACjB,IAAIA,EAAal8F,OAAOumB,OAAO,CAAA,EAAInjB,KAAK84F,YACxCxyF,YAAWwB,UACH9H,KAAKw4F,eAAev4F,KAChBD,KAAK84F,aACLA,EAAa94F,KAAK84F,YAEtB3yD,EAAgB2yD,EAAWz7F,QAAQkR,KAAMuqF,EAAWz7F,QAASy7F,EAAWngE,mBAErE34B,KAAKw4F,eAAev4F,EAAG,GAC/B,EACN,CAED,MAAM2iB,EAAQ5iB,KAAK+M,SAASxB,IAAIvL,KAAKq4F,QAASlyD,GAC9C,MAAO,KACHnmC,KAAKw4F,eAAev4F,IAAM,EAC1BD,KAAKy4F,4BAA4B1sB,OAAO9rE,GACxC2iB,GAAO,CAEd,CAEM,kBAAMo0E,CAAa15F,EAAckO,GACpC,GAAoB,iBAATlO,EACP,MAAM,IAAIuC,MAAM,wCAEpB,GAAwB,mBAAb2L,EACP,MAAM,IAAI3L,MAAM,8CAGpB,MAAMI,EAAKyO,GAAMw6D,aAEX/iC,EAAkBnmC,KAAK64F,4BAA4BrtF,EAAUvL,GAE7D2iB,QAAc5iB,KAAKo4F,OAAOpB,aAAa15F,EAAM6oC,GACnD,MAAO,KACHnmC,KAAKy4F,4BAA4B1sB,OAAO9rE,GACxC2iB,GAAO,CAGd,CAEM,aAAMywB,CAAQ9kC,EAAcxK,GAC/B,GAAoB,iBAATwK,EACP,MAAM,IAAI1O,MAAM,yCAOpB,GAJIkE,GACA/D,KAAK+4F,uBAAuBh1F,GAGT,iBAAZA,EACP,OAAO/D,KAAKg5F,mBAAmBzqF,EAAMxK,GAGzC,MAAM6zF,EAAiC,iBAAZ7zF,EAAuBA,EAAU/D,KAAKq4B,eAEjE,IAAKu/D,EACD,MAAM,IAAI/3F,MAAM,8BAGpB,IAAKG,KAAKo4F,OAAOnB,UAAUW,GACvB,OAAO9xF,QAAQ6H,OAAO,IAAI9N,MAAM,wBAAwB+3F,qBAK5D,WAF0B53F,KAAKi5F,yBAAyBrB,IAAcsB,MAGlE,MAAM,IAAIr5F,MAAM,uDAAuDG,KAAKq4B,kBAGhF,OAAOr4B,KAAKo4F,OAAOX,WAAWG,EAAarpF,EAC9C,CAEM,cAAMsqB,CAAS2C,EAA8Cl+B,GAChE,GAAIA,EAAM,CACN,GAAoB,iBAATA,EACP,MAAM,IAAIuC,MAAM,wCAGpB,IAAKG,KAAKo4F,OAAOnB,UAAU35F,GACvB,OAAOwI,QAAQ6H,OAAO,IAAI9N,MAAM,wBAAwBvC,qBAG5D,WAAY0C,KAAKi5F,yBAAyB37F,IAAO47F,MAC7C,MAAM,IAAIr5F,MAAM,uDAAuDvC,KAG3E,OAAO0C,KAAKo4F,OAAOv/D,SAASv7B,EAAMk+B,EACrC,CAED,IAAKx7B,KAAKq4B,eACN,MAAM,IAAIx4B,MAAM,8BAGpB,WAAYG,KAAKi5F,yBAAyBj5F,KAAKq4B,iBAAiB6gE,MAC5D,MAAM,IAAIr5F,MAAM,uDAAuDG,KAAKq4B,kBAGhF,IAAK/5B,MAAMC,QAAQi9B,GACf,MAAM,IAAI37B,MAAM,6CAOpB,OAJA27B,EAAMp8B,SAAS5B,IACXwC,KAAKm5F,iBAAiB37F,EAAK,IAGxBwC,KAAKo4F,OAAOv/D,SAAS74B,KAAKq4B,eAAgBmD,EACpD,CAEM,aAAM5C,CAAQp7B,EAA2CF,GAC5D,GAAIA,EAAM,CACN,GAAoB,iBAATA,EACP,MAAM,IAAIuC,MAAM,wCAGpB,IAAKG,KAAKo4F,OAAOnB,UAAU35F,GACvB,OAAOwI,QAAQ6H,OAAO,IAAI9N,MAAM,wBAAwBvC,qBAG5D,WAAY0C,KAAKi5F,yBAAyB37F,IAAO47F,MAC7C,MAAM,IAAIr5F,MAAM,uDAAuDvC,KAG3E,OAAO0C,KAAKo4F,OAAOv/D,SAASv7B,EAAM,CAACE,GACtC,CAED,IAAKwC,KAAKq4B,eACN,MAAM,IAAIx4B,MAAM,8BAGpB,WAAYG,KAAKi5F,yBAAyBj5F,KAAKq4B,iBAAiB6gE,MAC5D,MAAM,IAAIr5F,MAAM,uDAAuDG,KAAKq4B,kBAKhF,OAFAr4B,KAAKm5F,iBAAiB37F,GAEfwC,KAAKo4F,OAAOv/D,SAAS74B,KAAKq4B,eAAgB,CAAC76B,GACrD,CAEM,GAAA0nB,GACH,MAAMk0E,EAAep5F,KAAKo4F,OAAOlzE,MACjC,OAAOpf,QAAQC,QAAQqzF,EAC1B,CAEM,UAAMhpC,GACT,MAAMgpC,QAAqBp5F,KAAKklB,MAEhC,aAD8Bpf,QAAQof,IAAIk0E,EAAahyF,KAAKwwF,GAAgB53F,KAAKuyB,IAAIqlE,KAExF,CAEM,GAAArlE,CAAIj1B,GACP,MAAoB,iBAATA,EACAwI,QAAQ6H,OAAO,IAAI9N,MAAM,iDAG7BG,KAAKo4F,OAAOd,eAAeh6F,EACrC,CAGM,KAAA+7F,GACH,OAAKr5F,KAAKq4B,eAGHr4B,KAAKuyB,IAAIvyB,KAAKq4B,gBAFVvyB,QAAQC,aAAQ5B,EAG9B,CAEM,UAAM1G,CAAKH,EAAc0a,GAC5B,OAAIA,EACOw+E,GAAcl5F,EAAM0a,GAExBhY,KAAKs5F,SAASh8F,EACxB,CAEM,0BAAMs7F,CAAqBt7F,GAC9B,OAAO0C,KAAKs5F,SAASh8F,GAAM,EAC9B,CAEM,KAAAsgB,CAAM5F,GACT,OAAIA,EACOw+E,QAAcryF,EAAW6T,GAE7BhY,KAAKu5F,WACf,CAEM,qBAAAC,GACH,OAAOx5F,KAAKu5F,WAAU,EACzB,CAEM,OAAAr+E,GACH,OAAOlb,KAAKq4B,cACf,CAEM,EAAA+vB,GACH,OAAOpoD,KAAKkb,SACf,CAEM,OAAAu+E,CAAQjuF,GACX,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAWpB,OAPgBG,KAAKkb,WAEjB5U,YAAW,KACPkF,EAASxL,KAAKkb,UAAU,GACzB,GAGAlb,KAAK+M,SAASxB,IAAIvL,KAAKs4F,WAAY9sF,EAC7C,CAEM,SAAAi0D,CAAUj0D,GACb,OAAOxL,KAAKy5F,QAAQjuF,EACvB,CAEM,SAAMD,CAAIsF,GACb,GAAoB,iBAATA,EACP,MAAM,IAAIhR,MAAM,yCAEpB,QAAyB,IAAdgR,EAAKvT,KACZ,MAAM,IAAIuC,MAAM,yBAEpB,GAAyB,iBAAdgR,EAAKvT,KACZ,MAAM,IAAIuC,MAAM,6CAEpB,QAAyB,IAAdgR,EAAKshC,KACZ,MAAM,IAAItyC,MAAM,yBAEpB,GAAyB,iBAAdgR,EAAKshC,KACZ,MAAM,IAAItyC,MAAM,8CAEpB,QAA+B,IAApBgR,EAAKshC,KAAK4P,MACjB,MAAM,IAAIliD,MAAM,+BAEpB,GAA+B,iBAApBgR,EAAKshC,KAAK4P,MACjB,MAAM,IAAIliD,MAAM,mDAGpB,MAAMxC,EAAoD,CACtDC,KAAMuT,EAAKvT,KACX60C,KAAMthC,EAAKshC,MAAQ,CAAE,EACrB5jC,KAAMsC,EAAKtC,MAAQ,CAAE,GAQzB,aAJMvO,KAAKo4F,OAAOZ,cAAc3mF,EAAKvT,KAAMD,SAErCu5F,GAAmB,aAAc/lF,EAAKvT,KAAMuT,EAAKshC,KAAK4P,OAErD1kD,CACV,CAEM,YAAMsoC,CAAO8zC,GAChB,GAAuB,iBAAZA,EACP,MAAM,IAAI55E,MAAM,sDAGdG,KAAKo4F,OAAOzyD,OAAO8zC,SAEnBmd,GAAmB,gBAAiBnd,EAC7C,CAEM,yBAAMigB,CAAoBjgB,GAC7B,GAAuB,iBAAZA,EACP,MAAM,IAAI55E,MAAM,gDAGpB,aAD0BG,KAAKw5E,uBAAuB,CAAErL,SAAU,CAACsL,MAChDryE,KAAKm2C,GAAMA,EAAEn4C,QACnC,CAEM,4BAAMo0E,CAAuBn3E,GAChC,IACI,MAAMwO,QF7NX/I,eAAsCzF,GAEzC,aADqBikB,GAAQI,OAA4B6vE,GAA0B,CAAE/hE,QAAS,kBAAmBjmB,KAAM,CAAElM,aAC3G88B,QAClB,CE0N+Bq6C,CAAuBn3E,GACpCi5C,EAAUt7C,KAAKu7C,aACrB,GAAI1qC,eAAAA,EAAMyqC,QACN,OAAOzqC,EAAKyqC,QAAQl0C,KAAKohF,IAEd,CACHpjF,OAFWk2C,EAAQ8yC,SAAS5F,EAAWxwE,UAGvCyhE,QAAS+O,EAAW/O,QACpBpnE,YAAam2E,EAAWn2E,eAIvC,CAAC,MAAOsnF,GACL35F,KAAKkN,OAAO5B,MAAM,wFAAyFquF,EAC9G,CACD,MAAO,EACV,CAEM,cAAMC,CAASC,GAClB,OF9QD/xF,eAA+BulC,eAC5B/mB,GAAQI,OAAO6vE,GAA0B,CAC3CE,aAAM7qF,EAAAyhC,EAAar1B,wBAAYA,GAC/Bwc,QAAS,WACTjmB,KAAM8+B,GAGd,CEuQeysD,CAAgBD,EAC1B,CAEM,qBAAME,CAAgB/hF,GACzB,OAAO2+E,GAAwB3+E,EAClC,CAEM,iBAAMgiF,CAAYH,GACrB,OFjQD/xF,eAA6CulC,eAC1C/mB,GAAQI,OAAO6vE,GAA0B,CAC3CE,aAAM7qF,EAAAyhC,EAAar1B,wBAAYA,GAC/Bwc,QAAS,cACTjmB,KAAM8+B,GAGd,CE0Pe4sD,CAA8BJ,EACxC,CAEM,yBAAAK,CAA0B7sD,EAAsDr1B,GACnFhY,KAAK+M,SAASX,QAAQ,uBAAwB,CAC1CihC,eACAr1B,YAEP,CAEO,OAAAmK,CAAQ5T,EAAclR,EAAmDs7B,GACxEt7B,GAAYs7B,GAKjB34B,KAAK84F,WAAa,CAAEz7F,UAASs7B,aAC7B34B,KAAKw4F,eAAiB,GACtBx4F,KAAK+M,SAASX,QAAQpM,KAAKq4F,QAAS9pF,EAAMlR,EAASs7B,IAN/C34B,KAAK84F,gBAAa30F,CAOzB,CAEO,cAAMm1F,CAASh8F,EAAc68F,GAAiB,GAClD,GAAoB,iBAAT78F,EACP,MAAM,IAAIuC,MAAM,gDAGpB,IAAKG,KAAKu4F,eAAiBj7F,IAAS0C,KAAKq4B,eAErC,OAEJr4B,KAAKu4F,eAAgB,EAGrB,MAAM6B,EAAoBxC,GACD53F,KAAKo4F,OAAOlzE,MACbrZ,SAAS+rF,GAIjC,IAAKwC,EAAiB98F,GAAO,CACzB,MAAM+8F,EAAuB,IAAIv0F,SAAc,CAACC,EAAS4H,KAErD,MAAM2sF,EAAa9zF,aAAY,KACvB4zF,EAAiB98F,KACjB2W,aAAay6B,GACb11B,cAAcshF,GACdv0F,IACH,GACF,KAEG2oC,EAAYpoC,YAAW,KACzB0S,cAAcshF,GAEP3sF,EAAO,IAAI9N,MAAM,wBAAwBvC,uBACjD,IAAK,UAGN+8F,CACT,CAEDr6F,KAAKq4B,eAAiB/6B,EACtB0C,KAAK84F,gBAAa30F,QAEZnE,KAAKo4F,OAAO5B,cAAcl5F,GAC5B68F,GACA3D,GAAcl5F,GAElB0C,KAAK+M,SAASX,QAAQpM,KAAKs4F,WAAYh7F,EAC1C,CAEO,SAAAi8F,CAAUY,GAAiB,GAO/B,OANAn6F,KAAKq4B,oBAAiBl0B,EACtBnE,KAAK+M,SAASX,QAAQpM,KAAKs4F,gBAAYn0F,GACvCnE,KAAKo4F,OAAOx6E,QACRu8E,GACA3D,KAEG1wF,QAAQC,SAClB,CAEO,8BAAMkzF,CAAyBrB,SACnC,MAAMvqD,EAA2C,QAA5BzhC,EAAA5L,KAAKu6F,2BAAuB,IAAA3uF,EAAAA,QAAM+qF,KACvD,IAAKtpD,IAAiB/uC,MAAMC,QAAQ8uC,EAAa8gC,YAAc9gC,EAAa8gC,SAAS10D,MAAKC,GAAKA,EAAEpc,OAASs6F,IACtG,MAAO,CACH4C,MAAM,EACNtB,OAAO,GAIf,OADkB7rD,EAAa8gC,SAAS10D,MAAKC,GAAKA,EAAEpc,OAASs6F,GAEhE,CAEO,qBAAA6C,CAAsBjvF,EAAsB+/D,EAAoBmvB,GACpE16F,KAAKy4F,4BAA4BptE,IAAIkgD,EAAY,CAC7CxsB,GAAIvzC,EACJosF,YAAa8C,IAEb16F,KAAK26F,2BAGT36F,KAAK26F,yBAA2B36F,KAAK+M,SAASxB,IAAI,wBAAwB,EAAG8hC,mBACzErtC,KAAKy4F,4BAA4Br5F,SAAQ,EAAG2/C,KAAI64C,eAAe33F,KAC3D,MAAM26F,EAAiBvtD,EAAa8gC,SAAS10D,MAAMC,GAAqDA,EAAEpc,OAASs6F,IAC9GgD,GAGDA,EAAeJ,OACfx6F,KAAKy4F,4BAA4B1sB,OAAO9rE,GACe,IAAnDD,KAAKy4F,4BAA4B97F,OAAOe,QAAgBsC,KAAK26F,2BAC7D36F,KAAK26F,2BACL36F,KAAK26F,yBAA2B,MAEpC57C,IACH,GACH,IAET,CAEO,qCAAA25C,GACJ14F,KAAK+M,SAASxB,IAAI,wBAAyBi6D,IACvCxlE,KAAKu6F,oBAAsB/0B,EAAEn4B,YAAY,GAEhD,CAEO,gBAAA8rD,CAAiB37F,GACrB,IAAKA,EACD,MAAM,IAAIqC,MAAM,8CAGpB,GAAoB,iBAATrC,EACP,MAAM,IAAIqC,MAAM,8CAA8CgH,KAAKC,UAAUtJ,MAGjF,IAAKA,EAAKA,KACN,MAAM,IAAIqC,MAAM,sDAAsDgH,KAAKC,UAAUtJ,MAGzF,IAAKA,EAAKlB,MACN,MAAM,IAAIuD,MAAM,uDAAuDgH,KAAKC,UAAUtJ,MAG1F,GAAyB,iBAAdA,EAAKA,KACZ,MAAM,IAAIqC,MAAM,qEAAqEgH,KAAKC,UAAUtJ,KAE3G,CAEO,sBAAAu7F,CAAuBh1F,GAC3B,GAAwB,iBAAZA,GAA2C,iBAAZA,GAAyBzF,MAAMC,QAAQwF,GAC9E,MAAM,IAAIlE,MAAM,4CAGpB,GAAuB,iBAAZkE,GAMX,GAAgB,WAAZA,IAAyBA,EAAQrG,OACjC,MAAM,IAAImC,MAAM,8CANhBG,KAAK66F,6BAA6B92F,EAQzC,CAEO,4BAAA82F,CAA6B92F,GACjC,GAAuB,iBAAZA,GAAwBzF,MAAMC,QAAQwF,GAC7C,MAAM,IAAIlE,MAAM,gCAGpB,GAAIkE,EAAQzG,OAAiC,iBAAjByG,EAAQzG,OAAsByG,EAAQzG,KAAKI,QACnE,MAAM,IAAImC,MAAM,8CAGpB,GAAIjD,OAAOC,KAAKkH,GAAS8H,SAAS,SAAmC,kBAAjB9H,EAAQm0F,KACxD,MAAM,IAAIr4F,MAAM,oCAEvB,CAEO,wBAAMm5F,CAAmBzqF,EAAWxK,GACxC,MAAM6zF,EAAc7zF,EAAQzG,MAAQ0C,KAAKq4B,eAEzC,IAAKr4B,KAAKo4F,OAAOnB,UAAUW,GAEvB,MAAM,IAAI/3F,MAAM,wBAAwBkE,EAAQzG,uBAGpD,IAAKs6F,EACD,MAAM,IAAI/3F,MAAM,+DAKpB,WAF0BG,KAAKi5F,yBAAyBrB,IAAcsB,MAGlE,MAAM,IAAIr5F,MAAM,uDAAuDG,KAAKq4B,kBAGhF,OAAKt0B,EAAQm0F,KAINl4F,KAAK86F,gBAAgBlD,EAAarpF,GAH9BvO,KAAKo4F,OAAOX,WAAWG,EAAarpF,EAIlD,CAEO,qBAAMusF,CAAgBlD,EAAqBrpF,SAC/C,GAAyB,iBAAdA,EAAKnS,QAAiC,QAAXwP,EAAA2C,EAAKnS,YAAM,IAAAwP,OAAA,EAAAA,EAAAlO,QAC7C,MAAM,IAAImC,MAAM,8DAGpB,MAAMzD,KAAEA,KAAS47F,GAASzpF,EAIpBwsF,EAAoB,CAAE,CAAC,QAFV3+F,EAAKiqB,MAAM,KAAK5oB,KAAK,QAEYu6F,GAEpD,OAAOh4F,KAAKo4F,OAAOX,WAAWG,EAAamD,EAC9C,CAEO,2BAAAlC,CAA4BrtF,EAAqGvL,GAiBrI,OAhBwB6H,MAAO+xB,EAAQx8B,EAAmDs7B,KAEtF,MAAMqiE,QAA6Bh7F,KAAKi5F,yBAAyB57F,EAAQC,MAGnE29F,EAAcj7F,KAAKk7F,wBAAwB79F,GAE7C29F,EAAqBR,KACrBhvF,EAASyvF,EAAa59F,EAASs7B,GAE/B34B,KAAKy6F,uBAAsB,KACvBjvF,EAASyvF,EAAa59F,EAASs7B,EAAU,GAC1C14B,EAAI5C,EAAQC,KAClB,CAIR,CAEO,uBAAA49F,CAAwB79F,GAE5B,MAAMkR,KAAEA,EAAIwpF,iBAAEA,GAAqB16F,EAEnC,IAAK06F,EACD,OAAOxpF,EAGX,MAAM4sF,EAAapD,EAAiB1xE,MAAM,KAAK5oB,KAAK,KAG9C29F,EAAqB,QAAQrD,IAE7BsD,EAAW,CAAEj/F,KAAM++F,KAAe5sF,EAAK6sF,KAErCA,CAACA,GAAqBE,KAAoBtD,GAASzpF,EAE3D,MAAO,IAAKypF,EAAME,KAAMmD,EAC3B,EC1lBC,SAAUjyC,GAAQlT,EAAyCmC,EAA+BkD,EAAgDruC,GAC5I,MAAMquF,EAAiB,IAAIxE,GAAwB7gD,GAC7Ci4B,EAAW,IAAIgqB,GAAaoD,EAAgBljD,EAAKkD,EAAYruC,GAE7DsuF,EHEH1zF,eAA4B2zF,EAA0CttB,WASzE,GARA7nD,GAAUm1E,EAEY,oBAAXr2F,QACHA,OAAOO,WACPqS,GAAW5S,OAAOO,SAASqS,WAI9BA,GAED,aAGEsO,GAAQsf,SAAmH,wBAAyBG,IACtJ,MAAMvR,EAAUuR,EAAKvR,QACrB,IAAKA,EACD,MAAM,IAAI30B,MAAM,4BAEpB,GAAgB,SAAZ20B,EASJ,GAAgB,UAAZA,EAAJ,CAIA,GAAgB,QAAZA,EAEA,MAAO,CAAEv0B,GADEkuE,EAASjzD,WAGxB,GAAgB,yBAAZsZ,EAAJ,CAOA,GAAgB,gCAAZA,EACA,MAAO,CAAEknE,aAAa,GAG1B,MAAM,IAAI77F,MAAM,mBAAmB20B,IANlC,CALD,CACI,MAAM6Y,EAAetH,EAAKsH,aACpBk1C,EAAiBx8C,EAAK0wD,KAC5BtoB,EAAS+rB,0BAA0B7sD,EAAck1C,EAEpD,CAVA,MAFGpU,EAASqrB,4BAVb,CACI,MAAMv5F,EAAK8lC,EAAK0zC,QAChB,IAAKx5E,EACD,MAAM,IAAIJ,MAAM,uBAGpBsuE,EAASyqB,qBAAqB34F,EAEjC,CAoB4C,IAIjD,MAAM2D,QAAe0iB,GAAQI,OAAiE,wBAAyB,CAAE+vE,KAAMz+E,GAAUhP,SAAUsd,GAAQtd,SAASA,YACjJ,UAAfpF,EAAOu7B,gBAAQ,IAAAvzB,OAAA,EAAAA,EAAEyhC,eACjB8gC,EAAS+rB,0BAAyC,QAAfh/C,EAAAt3C,EAAOu7B,gBAAQ,IAAA+b,OAAA,EAAAA,EAAE7N,aAAcr1B,GAE1E,CGzDgCi/B,CAAaoB,EAAK81B,GAE9C,MAAO,CACHn1C,UAAWm1C,EAASn1C,UAAUljB,KAAKq4D,GACnC6oB,aAAc7oB,EAAS6oB,aAAalhF,KAAKq4D,GACzC96B,QAAS86B,EAAS96B,QAAQv9B,KAAKq4D,GAC/Bv1C,QAASu1C,EAASv1C,QAAQ9iB,KAAKq4D,GAC/Bt1C,SAAUs1C,EAASt1C,SAAS/iB,KAAKq4D,GACjCjpD,IAAKipD,EAASjpD,IAAIpP,KAAKq4D,GACvB/d,KAAM+d,EAAS/d,KAAKt6C,KAAKq4D,GACzB57C,IAAK47C,EAAS57C,IAAIzc,KAAKq4D,GACvB1wE,KAAM0wE,EAAS1wE,KAAKqY,KAAKq4D,GACzBvwD,MAAOuwD,EAASvwD,MAAM9H,KAAKq4D,GAC3ByrB,SAAUzrB,EAASyrB,SAAS9jF,KAAKq4D,GACjC4rB,gBAAiB5rB,EAAS4rB,gBAAgBjkF,KAAKq4D,GAC/C6rB,YAAa7rB,EAAS6rB,YAAYlkF,KAAKq4D,GAEvCjzD,QAASizD,EAASjzD,QAAQpF,KAAKq4D,GAC/B/lB,GAAI+lB,EAAS/lB,GAAGtyC,KAAKq4D,GAErBsrB,QAAStrB,EAASsrB,QAAQ3jF,KAAKq4D,GAC/B1O,UAAW0O,EAAS1O,UAAU3pD,KAAKq4D,GACnC5iE,IAAK4iE,EAAS5iE,IAAIuK,KAAKq4D,GACvBxoC,OAAQwoC,EAASxoC,OAAO7vB,KAAKq4D,GAC7BurB,oBAAqBvrB,EAASurB,oBAAoB5jF,KAAKq4D,GACvDqL,uBAAwBrL,EAASqL,uBAAuB1jE,KAAKq4D,GAC7DkrB,MAAOlrB,EAASkrB,MAAMvjF,KAAKq4D,GAC3BtrD,MAAO/a,gBACGhC,QAAQof,IAAI,CAAEgxB,EAAiBrzB,QAAS24E,GAAqB,EAG/E,CCrCA,MAAMG,GAAgB,4BAOTC,GAMT,WAAAr/F,CAAoB87C,GAAAr4C,KAAGq4C,IAAHA,EAJZr4C,KAAQ+M,SAAqBH,KAC7B5M,KAAW67F,aAAG,EACd77F,KAAA87F,QAAU,IAAI/tE,GAGrB,CAEM,cAAM6X,CAAS/0B,EAAoDrF,GACtE,QAAoB,IAATqF,EACP,MAAM,IAAIhR,MAAM,4BAGpB,GAAoB,iBAATgR,EACPA,EAAO,CACHkrF,OAAQlrF,OAET,CACH,IAAKA,EAAKkrF,OACN,MAAM,IAAIl8F,MAAM,mCAGpBgR,EAAO,CACHkrF,OAAQlrF,EAAKkrF,OACb3+F,YAAayT,EAAKzT,YAEzB,CAED,MAAM4+F,EAAYh8F,KAAKi8F,aAAaprF,EAAKkrF,QACzC,GAAI/7F,KAAK87F,QAAQ/pF,IAAIiqF,GACjB,MAAM,IAAIn8F,MAAM,gBAAgBm8F,wBAIhCh8F,KAAK67F,cACL77F,KAAK67F,aAAc,QACb77F,KAAKk8F,2BAGfl8F,KAAK+M,SAASxB,IAAIywF,EAAWxwF,SAGvBxL,KAAKq4C,IAAI3xB,OAAOi1E,GAAe,CAAEnnE,QA/CvB,WA+CiDunE,OAAQC,EAAW5+F,YAAayT,EAAKzT,cAEtG4C,KAAK87F,QAAQzwE,IAAI2wE,EAAWnrF,EAC/B,CAEM,gBAAMgzB,CAAWk4D,GACpB,QAAsB,IAAXA,EACP,MAAM,IAAIl8F,MAAM,4BAGpB,GAAsB,iBAAXk8F,EACP,MAAM,IAAIl8F,MAAM,mCAGpB,MAAMm8F,EAAYh8F,KAAKi8F,aAAaF,SAC9B/7F,KAAKq4C,IAAI3xB,OAAOi1E,GAAe,CAAEnnE,QA7DrB,aA6DiDunE,OAAQC,IAC3Eh8F,KAAK87F,QAAQ/vB,OAAOiwB,GACpBh8F,KAAK+M,SAASL,SAASsvF,EAC1B,CAEM,mBAAMG,SACHn8F,KAAKq4C,IAAI3xB,OAAOi1E,GAAe,CAAEnnE,QAlElB,kBAmErBx0B,KAAK87F,QAAQrvF,QACbzM,KAAK+M,SAASN,OACjB,CAMM,YAAA2vF,CAAaL,GAChB,MAAMC,EAAYh8F,KAAKi8F,aAAaF,GACpC,OAAO/7F,KAAK87F,QAAQ/pF,IAAIiqF,EAC3B,CAEO,uBAAAE,GACJ,OAAOl8F,KAAKq4C,IAAIzS,SArFH,sBAqF2BG,IAGpC,MAAMi2D,EAAYj2D,EAAK/oC,IAAIgI,cACrB6L,EAAO7Q,KAAK87F,QAAQvpE,IAAIypE,GAC9Bh8F,KAAK+M,SAASX,QAAQ4vF,EAAWnrF,EAAK,GAE7C,CAEO,YAAAorF,CAAaF,GACjB,GAAIA,EACA,OAAOA,EAAOhvE,QAAQ,MAAO,IAAI/nB,aAExC,iBC7FUqxC,GAACtyC,IAyBZ,SAASs4F,EAA0D//F,EAAuBggG,EAA+BC,GAGrH,GAAqB,kBAAVjgG,IAAwBA,EAC/B,OAIJ,MAAMgsD,EAAOk0C,EAAgBlgG,EAAOggG,EAAaC,GAEjD,YAAoB,IAATj0C,EAMU,iBAAVhsD,GACPA,EAAMgsD,KAAOA,EACNhsD,GAGJ,CACHgsD,aAZJ,CAcH,CASD,SAASk0C,EAAgBlgG,EAAuBggG,EAA+BC,GAE3E,MAAqB,iBAAVjgG,EAEAkgG,EAAgBlgG,EAAMgsD,KAAMg0C,EAAaC,GAAUv+F,gBAClC,IAAV1B,EAEa,kBAAhBggG,GAA8BA,EAGP,kBAAhBA,GAA6BA,OAGhB,IAAbC,EAA2BD,EAAcC,OACzB,IAAhBD,OACd,EAEOA,OARP,EAUoB,kBAAVhgG,EAEVA,OAE4B,IAAbigG,EAA4BD,EAAcC,OAGzD,EAIDjgG,CACV,CAED,MAGMmgG,GAAwB/tF,GAAMC,UAAmB,gCAGjD+tF,EAAqB,OACrBC,EAAkBD,EAElBE,EAAyC,kBAAtB74F,EAAQ64F,WAAyD,kBAAvB74F,EAAQ84F,WAE3E,MAAO,CACHlO,QAAS0N,EAAqCt4F,EAAQ4qF,QAAS+N,EAAoBC,GACnFtlD,WAAYglD,EAAwCt4F,EAAQszC,WAAYolD,EATjD,iCAUvBx2B,WAAYo2B,EAAwCt4F,EAAQkiE,YAdzC,EACI,aAcvB3qB,QAAS+gD,EAAuCt4F,EAAQu3C,SAAS,GAAM,GACvE6yB,SAAUkuB,EAAuCt4F,EAAQoqE,UAAU,GAAO,GAC1EvG,SAAUy0B,EAAuCt4F,EAAQ6jE,UAAU,GAAM,GACzEg1B,UAAWA,IAAwB,EACtC,QCnHQE,GA6BT,WAAAvgG,CAA0BwH,GAAA/D,KAAO+D,QAAPA,EAFlB/D,KAASgL,UAAqBq/E,KAGlCrqF,KAAKuqE,QAAUxmE,EAAQwmE,QACvBvqE,KAAK+8F,KAAOh5F,EAAQg5F,KACpB/8F,KAAKg9F,MAAQj5F,EAAQi5F,MACrBh9F,KAAKuO,KAAOxK,EAAQwK,KACpBvO,KAAKi9F,IAAMl5F,EAAQk5F,IACnBj9F,KAAKw8D,KAAOz4D,EAAQy4D,KACpBx8D,KAAKk9F,MAAQn5F,EAAQm5F,MACrBl9F,KAAKm9F,KAAOp5F,EAAQo5F,KACpBn9F,KAAKo9F,SAAWr5F,EAAQq5F,SACxBp9F,KAAKq9F,mBAAqBt5F,EAAQs5F,mBAClCr9F,KAAKilF,OAASlhF,EAAQkhF,OACtBjlF,KAAKqd,IAAMtZ,EAAQsZ,IACnBrd,KAAK8E,UAAYf,EAAQe,UACzB9E,KAAKkF,MAAQnB,EAAQmB,KACxB,CAEM,KAAA6I,GACH,MAAM,IAAIlO,MAAM,0BACnB,CAGM,gBAAAyF,CAAiBlJ,EAAW23D,EAAehwD,GAC9C/D,KAAKgL,UAAUO,IAAInP,EAAM23D,EAC5B,CAGM,mBAAAupC,CAAoBlhG,EAAW23D,EAAehwD,GAEpD,CACM,aAAAw5F,CAAcplF,GAEjB,OADAnY,KAAKgL,UAAUoB,QAAQ+L,EAAM/b,KAAM+b,IAC5B,CACV,QC/DQqlF,GAET,WAAAjhG,CAAoB+pB,EAA+Cm3E,GAA/Cz9F,KAAOsmB,QAAPA,EAA+CtmB,KAAay9F,cAAbA,CAClE,CAEM,mBAAA9iB,CAAoBnvE,GACvB,OAAOxL,KAAKy9F,cAAc,8BAA+BjyF,EAC5D,CAEM,MAAAkyF,GACH,OAAO19F,KAAKsmB,QAAQI,OAAO,yBAC9B,CAEM,IAAAsuD,GACH,OAAOh1E,KAAKsmB,QAAQI,OAAO,yBAA0B,CAAEsuD,MAAM,GAChE,CAEM,IAAAC,GACH,OAAOj1E,KAAKsmB,QAAQI,OAAO,yBAC9B,CAEM,eAAMq9B,GAET,aAD4B/jD,KAAKsmB,QAAQI,OAAkC,4BAA6B,CAAE8N,QAAS,oBAC9F2K,SAASw+D,YACjC,CAEM,KAAAC,GACH,MAAO,CACHjjB,oBAAqB36E,KAAK26E,oBAAoB7kE,KAAK9V,MACnD09F,OAAQ19F,KAAK09F,OAAO5nF,KAAK9V,MACzBg1E,KAAMh1E,KAAKg1E,KAAKl/D,KAAK9V,MACrBi1E,KAAMj1E,KAAKi1E,KAAKn/D,KAAK9V,MACrB+jD,UAAW/jD,KAAK+jD,UAAUjuC,KAAK9V,MAEtC,QCbQ69F,GAuBT,WAAAthG,CAAoB+pB,EAAuCpZ,GAAvClN,KAAOsmB,QAAPA,EAnBHtmB,KAA4B89F,6BAAG,kCAC/B99F,KAA0B+9F,2BAAG,4BAC7B/9F,KAA2Bg+F,4BAAG,oCAC9Bh+F,KAA0Bi+F,2BAAG,4BAEtCj+F,KAAiBk+F,mBAAG,EACpBl+F,KAAmCm+F,oCAAG,8BAC7Bn+F,KAAAo+F,eAAiB,6BAA+B1vF,GAAMw6D,aAC/DlpE,KAAMyqC,OAAG,EACTzqC,KAAaq+F,cAAyC,GACtDr+F,KAAQ+M,SAAqBs9E,KAG7BrqF,KAA0Bs+F,4BAAG,EAC7Bt+F,KAAuBu+F,yBAAG,EAC1Bv+F,KAAkCw+F,mCAAG,EACrCx+F,KAA4By+F,6BAAG,EAInCz+F,KAAKkN,OAASA,EAAO4S,UAAU,iBAC/B9f,KAAK0+F,OAAS,IAAIlB,GAASl3E,EAAStmB,KAAK2+F,kBAAkB7oF,KAAK9V,OAChEA,KAAK4+F,UAAY5+F,KAAK0+F,OAAOd,QAC7B59F,KAAK6+F,yBACR,CAED,cAAWC,GACP,OAAO,CACV,CAED,SAAWC,GACP,OAAO/+F,KAAK4+F,SACf,CAEM,WAAMI,CAAMj7F,eAGf,GAFA/D,KAAKw6D,SAASz2D,IAET/D,KAAKk+F,kBAAmB,CACzB,MAAMe,EAAkB,GACxB,IAAK,IAAI9yF,EA5DE,EA4DsBA,EAAQnM,KAAK8+F,WAAY3yF,IACtD8yF,EAAgB/+F,KACZF,KAAKsmB,QAAQsf,SAAS,GAAG5lC,KAAKo+F,kBAAkBjyF,IAASnM,KAAKk/F,wBAAwBppF,KAAK9V,QAInGA,KAAKk+F,mBAAoB,QACnBp4F,QAAQof,IAAI+5E,EACrB,CAGD,MAAMh/F,EAAKwvB,OAAOzvB,KAAKyqC,UACjBruC,EAAmB,QAAZwP,EAAA7H,EAAQ3H,YAAI,IAAAwP,EAAAA,EAAI,eACvBuzF,EAAwC,CAC1Cl/F,GAAI8D,EAAQ9D,GACZhB,cAAOi8C,EAAAn3C,EAAQ9E,qBAAS,SACxBiG,MAAOnB,EAAQmB,MACf9I,OACAgjG,iBAAU7gC,EAAAx6D,EAAQq7F,wBAAY,OAC9BhiG,YAAa2G,EAAQg5F,KACrBsC,4BAA6B,GAAGr/F,KAAKo+F,mBACrC7zB,QAAS,GACT+0B,SAAUr/F,EACVgZ,OAAQlV,EAAQkV,OAChBsmF,oBAAoB,EACpBC,aAAcz7F,EAAQy7F,cAGtBz7F,EAAQwmE,SACRvqE,KAAKy/F,cAAc17F,EAAS9D,EAAIk/F,GAGpCn/F,KAAK0/F,cAAc37F,EAASo7F,GAE5B,MAAMQ,EAAkB,IAAI7C,GAAmB/4F,GAC/C/D,KAAKq+F,cAAcp+F,GAAM0/F,EAEzB,IACI,MAAMC,QAAyB5/F,KAAKsmB,QAAQI,OAAO1mB,KAAKg+F,4BAA6B,CAAEmB,iBACvFQ,EAAgB1/F,GAAgC,QAA3Bg5B,EAAA2mE,EAAiBzgE,gBAAU,IAAAlG,OAAA,EAAAA,EAAAh5B,EACnD,CAAC,MAAO8L,GAEL,MAAM8gC,EAAe9gC,EAAIuB,QACzBhH,YAAW,KACPtG,KAAK6/F,6BAA6BF,EAAiB9yD,EAAa,GACjE,EACN,CACD,OAAO8yD,CACV,CAEM,eAAMG,CAAUz9F,GAEnB,aADqBrC,KAAKsmB,QAAQI,OAAO,2BAA4BrkB,IACvD88B,QACjB,CAEM,eAAM4gE,GAET,aADqB//F,KAAKsmB,QAAQI,OAAO,6BAC3ByY,QACjB,CAEM,eAAM85C,CAAUl1E,uBACnB,IAAKA,GAAWzF,MAAMC,QAAQwF,GAC1B,MAAM,IAAIlE,MAAM,0CAGpB,GAAsC,IAAlCjD,OAAOD,OAAOoH,GAASrG,OACvB,MAAM,IAAImC,MAAM,4CAGpB,QAA8B,IAAnBkE,EAAQi8F,QAAoD,kBAAnBj8F,EAAQi8F,OACxD,MAAM,IAAIngG,MAAM,uCAGpB,QAAoC,IAAzBkE,EAAQk8F,cAAgE,kBAAzBl8F,EAAQk8F,aAC9D,MAAM,IAAIpgG,MAAM,4CAGpB,QAAmC,IAAxBkE,EAAQm8F,aAA8D,iBAAxBn8F,EAAQm8F,YAC7D,MAAM,IAAIrgG,MAAM,0CAGpB,GAAIkE,EAAQo8F,cAAgD,iBAAzBp8F,EAAQo8F,aACvC,MAAM,IAAItgG,MAAM,2CAGpB,IAA0B,UAAtBkE,EAAQo8F,oBAAc,IAAAv0F,OAAA,EAAAA,EAAAw0F,WAAY9hG,MAAMC,QAA8B,UAAtBwF,EAAQo8F,oBAAc,IAAAjlD,OAAA,EAAAA,EAAAklD,SACtE,MAAM,IAAIvgG,MAAM,kDAGpB,IAA0B,UAAtBkE,EAAQo8F,oBAAc,IAAA5hC,OAAA,EAAAA,EAAA8hC,WAAY/hG,MAAMC,QAA8B,UAAtBwF,EAAQo8F,oBAAc,IAAAlnE,OAAA,EAAAA,EAAAonE,SACtE,MAAM,IAAIxgG,MAAM,kDAGpB,GAAIkE,EAAQu8F,QAAoC,iBAAnBv8F,EAAQu8F,OACjC,MAAM,IAAIzgG,MAAM,8CAGpB,YAAIy/D,EAAAv7D,EAAQu8F,6BAAQh4C,OAAuC,iBAAxBvkD,EAAQu8F,OAAOh4C,KAC9C,MAAM,IAAIzoD,MAAM,mDAGpB,YAAI0gG,EAAAx8F,EAAQu8F,6BAAQE,UAA6C,iBAA3Bz8F,EAAQu8F,OAAOE,QACjD,MAAM,IAAI3gG,MAAM,sDAGpB,GAAIkE,EAAQ08F,WAA0C,iBAAtB18F,EAAQ08F,UACpC,MAAM,IAAI5gG,MAAM,iDAGpB,YAAI6gG,EAAA38F,EAAQ08F,gCAAWH,SAA8C,iBAA7Bv8F,EAAQ08F,UAAUH,OACtD,MAAM,IAAIzgG,MAAM,wDAGpB,YAAI8gG,EAAA58F,EAAQ08F,gCAAW1B,QAA4C,iBAA5Bh7F,EAAQ08F,UAAU1B,MACrD,MAAM,IAAIl/F,MAAM,uDAIpB,aADqBG,KAAKsmB,QAAQI,OAAO1mB,KAAKm+F,oCAAqCp6F,IACrEo7B,QACjB,CAEM,sBAAM0+B,GAET,aADqB79D,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,sBACvE2K,QACjB,CAEM,UAAMixB,GAET,aAD4BpwD,KAAKsmB,QAAQI,OAA6E1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,OAAQjmB,KAAM,CAAEqyF,gBAAgB,MAC7KzhE,SAASk/D,aACjC,CAEM,gBAAM5G,CAAWx3F,EAAYsO,GAChC,MAEMsyF,EAAY,CACd7jG,IAAK,OACLV,MAAO,CACHwkG,YAAaj6F,KAAKC,UAAUyH,GALnB,CAACvR,EAAaV,SACV,IAAVA,EAAwB,KAAOA,MAQ1C,aAD4B0D,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,6BAA8BjmB,KAAM,CAAEtO,KAAI4gG,gBACjH1hE,QACxB,CAEM,QAAA4hE,CAASv1F,GACZ,OAAOxL,KAAK2+F,kBAAkB,yBAA0BnzF,EAC3D,CAEM,cAAAw1F,CAAex1F,GAClB,OAAOxL,KAAK2+F,kBAAkB,mBAAoBnzF,EACrD,CAEM,QAAA0iC,CAAS1iC,GACZ,OAAOxL,KAAK2+F,kBAAkB,yBAA0BnzF,EAC3D,CAEM,sBAAAy1F,CAAuBz1F,GAC1B,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAEpBG,KAAKg5B,YACL,MAAMG,EAAKn5B,KAAK+M,SAASxB,IAAI,2BAA4BC,GACzD,MAAO,KACH2tB,IACAn5B,KAAKkhG,mCAAmC,CAE/C,CAEM,gBAAAC,CAAiB31F,GACpB,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAEpBG,KAAKohG,4BACL,MAAMjoE,EAAKn5B,KAAK+M,SAASxB,IAAI,qBAAsBC,GACnD,MAAO,KACH2tB,IACAn5B,KAAKqhG,0CAA0C,CAEtD,CAEM,aAAAC,CAAiB91F,GACpB,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAEpBG,KAAKg5B,YACL,MAAMG,EAAKn5B,KAAK+M,SAASxB,IAAI,+BAAgCC,GAC7D,MAAO,KACH2tB,IACAn5B,KAAKkhG,mCAAmC,CAE/C,CAEM,cAAMK,SACHvhG,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,YACzE,CAEM,cAAMgtE,SACHxhG,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,cAAejmB,KAAM,CAAEqyF,gBAAgB,IAChH,CAEM,WAAMn0F,CAAMxM,GACf,IAAKA,EACD,MAAM,IAAIJ,MAAM,iDAEpB,GAAoB,iBAAR,EACR,MAAM,IAAIA,MAAM,4CAEdG,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,QAASjmB,KAAM,CAAEtO,OAC1F,CAEM,eAAMwhG,CAAUpD,GACnBr+F,KAAK0hG,yBAAyBrD,SACxBr+F,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,YAAajmB,KAAM,CAAE8vF,kBAC9F,CAEM,WAAMsD,CAAM1hG,EAAY2J,EAAiB7F,SACtC/D,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,QAASjmB,KAAM,CAAEtO,KAAI2J,SAAQ7F,YACtG,CAEM,YAAM69F,CAAO3hG,EAAY04C,SACtB34C,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,SAAUjmB,KAAM,CAAEtO,KAAI04C,aAC/F,CAEM,gBAAMkpD,CAAWxD,EAAyB1lD,GAC7C,IAAKA,EACD,MAAM,IAAI94C,MAAM,uDAEpB,GAAwB,iBAAb84C,EACP,MAAM,IAAI94C,MAAM,kDAEpBG,KAAK0hG,yBAAyBrD,SACxBr+F,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,aAAcjmB,KAAM,CAAE8vF,gBAAe1lD,aAC9G,CAEM,cAAMx1C,CAASlD,EAAYhB,GAC9B,IAAKgB,EACD,MAAM,IAAIJ,MAAM,iDAEpB,GAAoB,iBAAR,EACR,MAAM,IAAIA,MAAM,sCAGpB,IAAKZ,EACD,MAAM,IAAIY,MAAM,oDAGpBG,KAAK8hG,cAAc7iG,SAEbe,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,cAAejmB,KAAM,CAAEtO,KAAIhB,UACpG,CAEM,eAAM8iG,CAAU1D,EAAyBp/F,GAC5C,IAAKA,EACD,MAAM,IAAIY,MAAM,oDAEpB,GAAqB,iBAAVZ,EACP,MAAM,IAAIY,MAAM,+CAEpBG,KAAK0hG,yBAAyBrD,SACxBr+F,KAAKsmB,QAAQI,OAAO1mB,KAAKi+F,2BAA4B,CAAEzpE,QAAS,eAAgBjmB,KAAM,CAAE8vF,gBAAep/F,UAChH,CAEM,KAAA2+F,GACH,MAAO,CACHkB,WAAY9+F,KAAK8+F,WACjBC,MAAO/+F,KAAK0+F,OAAOd,QACnBoB,MAAOh/F,KAAKg/F,MAAMlpF,KAAK9V,MACvB8/F,UAAW9/F,KAAK8/F,UAAUhqF,KAAK9V,MAC/B+/F,UAAW//F,KAAK+/F,UAAUjqF,KAAK9V,MAC/Bi5E,UAAWj5E,KAAKi5E,UAAUnjE,KAAK9V,MAC/B69D,iBAAkB79D,KAAK69D,iBAAiB/nD,KAAK9V,MAC7CowD,KAAMpwD,KAAKowD,KAAKt6C,KAAK9V,MACrB+gG,SAAU/gG,KAAK+gG,SAASjrF,KAAK9V,MAC7BghG,eAAgBhhG,KAAKghG,eAAelrF,KAAK9V,MACzCkuC,SAAUluC,KAAKkuC,SAASp4B,KAAK9V,MAC7BihG,uBAAwBjhG,KAAKihG,uBAAuBnrF,KAAK9V,MACzDmhG,iBAAkBnhG,KAAKmhG,iBAAiBrrF,KAAK9V,MAC7CshG,cAAethG,KAAKshG,cAAcxrF,KAAK9V,MACvCuhG,SAAUvhG,KAAKuhG,SAASzrF,KAAK9V,MAC7BwhG,SAAUxhG,KAAKwhG,SAAS1rF,KAAK9V,MAC7ByM,MAAOzM,KAAKyM,MAAMqJ,KAAK9V,MACvB2hG,MAAO3hG,KAAK2hG,MAAM7rF,KAAK9V,MACvBmD,SAAUnD,KAAKmD,SAAS2S,KAAK9V,MAC7By3F,WAAYz3F,KAAKy3F,WAAW3hF,KAAK9V,MACjC4hG,OAAQ5hG,KAAK4hG,OAAO9rF,KAAK9V,MACzB6hG,WAAY7hG,KAAK6hG,WAAW/rF,KAAK9V,MACjCyhG,UAAWzhG,KAAKyhG,UAAU3rF,KAAK9V,MAC/B+hG,UAAW/hG,KAAK+hG,UAAUjsF,KAAK9V,MAEtC,CAEO,iBAAA2+F,CAAsC3hG,EAAawO,GACvD,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAEpBG,KAAKg5B,YACL,MAAMG,EAAKn5B,KAAK+M,SAASxB,IAAIvO,EAAKwO,GAClC,MAAO,KACH2tB,IACAn5B,KAAKkhG,mCAAmC,CAE/C,CAEO,aAAAxB,CAAc37F,EAAsEo7F,GAQxF,GAPIp7F,EAAQy4D,OACR2iC,EAAa6C,WAAa7C,EAAa6C,YAAc,GACrD7C,EAAa6C,WAAW9hG,KACpB,CAAElD,IAAK,OAAQV,MAAO,CAAEwkG,YAAa/8F,EAAQy4D,SAIjDz4D,EAAQwK,KAAM,CACd4wF,EAAa6C,WAAa7C,EAAa6C,YAAc,GACrD,MAAMC,EAAep7F,KAAKC,UAAU/C,EAAQwK,MAC5C4wF,EAAa6C,WAAW9hG,KACpB,CAAElD,IAAK,OAAQV,MAAO,CAAEwkG,YAAamB,IAE5C,CAEkC,iBAAxBl+F,EAAQm+F,cACf/C,EAAa6C,WAAa7C,EAAa6C,YAAc,GACrD7C,EAAa6C,WAAW9hG,KACpB,CAAElD,IAAK,cAAeV,MAAO,CAAEwkG,YAAa/8F,EAAQm+F,YAAYlkG,eAIrC,iBAAxB+F,EAAQm8F,cACff,EAAa6C,WAAa7C,EAAa6C,YAAc,GACrD7C,EAAa6C,WAAW9hG,KACpB,CAAElD,IAAK,cAAeV,MAAO,CAAEwkG,YAAa/8F,EAAQm8F,YAAYliG,cAG3E,CAEO,aAAAyhG,CAAc17F,EAAsE9D,EAAYk/F,aACpG,MAAMgD,EAAep+F,EAAQwmE,QAAQhrE,MAAM,EAAGS,KAAK8+F,YAEnD,IAAI3yF,EA7YW,EA8Yf,IAAK,MAAMvC,KAAUu4F,EAAc,CAC/B,MAAMp8D,EAAkE,CACpEq8D,kBAAmBniG,EACnBoiG,UAAWz4F,EAAOA,OAClB04F,yBAAkB12F,EAAAhC,EAAO0c,8BAAS1B,OAClC29E,yBAAkBrnD,EAAAtxC,EAAO0c,8BAAS3hB,OAClC69F,oBAAqB37F,KAAKC,UAA0B,QAAhBy3D,EAAA30D,EAAO0c,eAAS,IAAAi4C,OAAA,EAAAA,EAAAhyD,YAGlD4xC,EAAavhD,OAAOC,KAAKkpC,GAAM3+B,KAAKpK,IAE/B,CACHM,KAAMN,EACNV,MAAO,CACHwkG,YAJM/6D,EAAK/oC,QASjBylG,EAA4C,CAC9CnlG,KAAM,GAAG0C,KAAKo+F,kBAAkBjyF,IAChC/O,YAAawM,EAAO1E,MACpBy+B,YAAa/5B,EAAO1E,MACpBi5C,cAGJghD,EAAa50B,QAAQrqE,KAAKuiG,GAC1Bt2F,GACH,CACJ,CAEO,QAAAquD,CAASz2D,GACb,IAAKA,EACD,MAAM,IAAIlE,MAAM,yCAEpB,GAAuB,iBAAZkE,EACP,MAAM,IAAIlE,MAAM,yCAEpB,IAAKkE,EAAQmB,MACT,MAAM,IAAIrF,MAAM,yCAEpB,GAA6B,iBAAlBkE,EAAQmB,MACf,MAAM,IAAIrF,MAAM,8CAEpB,GAAIkE,EAAQq7F,UAAwC,iBAArBr7F,EAAQq7F,SACnC,MAAM,IAAIv/F,MAAM,iDAEpB,GAAIkE,EAAQm+F,aAA8C,iBAAxBn+F,EAAQm+F,YACtC,MAAM,IAAIriG,MAAM,oDAEpB,GAAIkE,EAAQm8F,aAA8C,iBAAxBn8F,EAAQm8F,YACtC,MAAM,IAAIrgG,MAAM,oDAEhBkE,EAAQ9E,OACRe,KAAK8hG,cAAc/9F,EAAQ9E,MAElC,CAEO,aAAA6iG,CAAc7iG,GAClB,GAAuB,iBAAX,EACR,MAAM,IAAIY,MAAM,yCASpB,IANoB,CAChB,SACA,eACA,SAGagM,SAAS5M,GACtB,MAAM,IAAIY,MAAM,uBAAuBZ,kBAE9C,CAEO,SAAA+5B,GACJh5B,KAAKw+F,qCACAx+F,KAAKs+F,6BACNt+F,KAAKs+F,4BAA6B,EAElCt+F,KAAKkN,OAAO2D,KAAK,+BAA+B7Q,KAAK89F,kCACrD99F,KAAKsmB,QACA0S,UAAUh5B,KAAK89F,6BAA8B,CAC1CvxF,UAAW,CACPm2F,eAAe,EACf9B,gBAAgB,KAGvBpzF,MAAM0F,IACHlT,KAAK2iG,6BAA+BzvF,EACpClT,KAAKkN,OAAO2D,KAAK,+BAA+B7Q,KAAK89F,kCACrD5qF,EAAI46B,QAAO,EAAGv/B,WACVvO,KAAK4iG,WAAWr0F,EAAK,IAEzB2E,EAAIg7B,UAAS,IAAInI,KACb/lC,KAAKs+F,4BAA6B,EAClCt+F,KAAKkN,OAAO2D,KACR,gCAAgChK,KAAKC,UAAUi/B,KAClD,IAEL7yB,EAAIk7B,UAAS,IAAIrI,KACb/lC,KAAKs+F,4BAA6B,EAClCt+F,KAAKkN,OAAOgL,KACR,gCAAgCrR,KAAKC,UAAUi/B,KAClD,GACH,IAELvjC,OAAOkC,IACJ1E,KAAKs+F,4BAA6B,EAClCt+F,KAAKkN,OAAO5B,MAAM,2BAA2BtL,KAAK89F,gCAAiCp5F,EAAE,IAGpG,CAEO,yBAAA08F,GACJphG,KAAKy+F,+BACAz+F,KAAKu+F,0BACNv+F,KAAKu+F,yBAA0B,EAC/Bv+F,KAAKkN,OAAO2D,KAAK,+BAA+B7Q,KAAK+9F,gCACrD/9F,KAAKsmB,QACA0S,UAAUh5B,KAAK+9F,2BAA4B,CACxCxxF,UAAW,CACPm2F,eAAe,KAGtBl1F,MAAM0F,IACHlT,KAAK6iG,uBAAyB3vF,EAC9BlT,KAAKkN,OAAO2D,KAAK,+BAA+B7Q,KAAK+9F,gCACrD7qF,EAAI46B,QAAO,EAAGv/B,WACVvO,KAAK+M,SAASX,QAAQ,qBAAsB,CAAE02F,MAAOv0F,EAAKu0F,OAAQ,IAEtE5vF,EAAIg7B,UAAS,IAAInI,KACb/lC,KAAKu+F,yBAA0B,EAC/Bv+F,KAAKkN,OAAO2D,KACR,gCAAgChK,KAAKC,UAAUi/B,KAClD,IAEL7yB,EAAIk7B,UAAS,IAAIrI,KACb/lC,KAAKu+F,yBAA0B,EAC/Bv+F,KAAKkN,OAAOgL,KACR,gCAAgCrR,KAAKC,UAAUi/B,KAClD,GACH,IAELvjC,OAAOkC,IACJ1E,KAAKu+F,yBAA0B,EAC/Bv+F,KAAKkN,OAAO5B,MAAM,2BAA2BtL,KAAK+9F,8BAA+Br5F,EAAE,IAGlG,CAEO,uBAAAm6F,GACJ7+F,KAAK+M,SAASxB,IAAI,0BAA2BtL,IACzCD,KAAK+iG,eAAe9iG,EAAG,IAE3BD,KAAK+M,SAASxB,IAAI,0BAA2B4zF,IACzCn/F,KAAKgjG,aAAa7D,EAAal/F,GAAG,GAEzC,CAEO,UAAA2iG,CAAWt1F,SACf,IACQ,UAAWA,GAAWhP,MAAMC,QAAQ+O,EAAQkmD,OAC5CxzD,KAAKijG,gBAAgB31F,GACd,WAAYA,GAAWhP,MAAMC,QAAQ+O,EAAQ41F,SACpDljG,KAAKmjG,aAAa71F,GAElB,kBAAmBA,GAA4C,iBAA1BA,EAAQ2uB,gBAC7Cj8B,KAAKkN,OAAO2D,KAAK,0BAA0BhK,KAAKC,UAAUwG,EAAQ2uB,kCAClEj8B,KAAK+M,SAASX,QAAQ,2BAA4BkB,EAAQ2uB,cAAe3uB,EAAQ2uB,cAAcmnE,kBAE/F,YAAa91F,GAAsC,iBAApBA,EAAQknB,UACvCx0B,KAAKkN,OAAO2D,KAAK,qBAAwC,UAAnBvD,EAAQknB,eAAW,IAAA5oB,EAAAA,EAAA/E,KAAKC,UAAUwG,uBAChD,cAApBA,EAAQknB,SAA+C,cAApBlnB,EAAQknB,SAC3Cx0B,KAAK+M,SAASX,QAAQ,8BAAmD,cAApBkB,EAAQknB,SAGxE,CAAC,MAAO9vB,GACL1E,KAAKkN,OAAO5B,MAAM,uCAAwC5G,EAC7D,CACJ,CAEO,eAAAu+F,CAAgB31F,GACpB,MAAMkmD,EAAQlmD,EAAQkmD,MACtBxzD,KAAKkN,OAAO2D,KACR,YAAY2iD,EAAM91D,wCAEtB,MAAM2gG,EAAmE7qC,EAGzE,GAAIlmD,EAAQw5D,WACRu3B,EAAcj/F,SAASmwB,IACnBvvB,KAAK+M,SAASX,QAAQ,yBAA0BmjB,EAAE,QAEnD,CACH,MAAM4vE,EAAed,EAAc,GACR,WAAvBc,EAAalgG,MACbe,KAAK+M,SAASX,QAAQ,yBAA0B,CAAEnM,GAAIk/F,EAAal/F,KAEnED,KAAK+M,SAASX,QAAQ,yBAA0B+yF,EAEvD,CACJ,CAEO,YAAAgE,CAAa71F,GACFA,EAAQ41F,OAChB9jG,SAASyR,UACZ,MAAM5Q,EAAK4Q,EAAK5Q,GACVm0B,EAAkB,QAAVxoB,EAAAiF,EAAKujB,aAAK,IAAAxoB,EAAAA,EAAI,GAC5B,GAAoB,WAAhBwoB,EAAMn1B,MACNe,KAAK+M,SAASX,QAAQ,yBAA0B,CAAEnM,QAAOm0B,SACtD,GAAIA,EAAMn1B,MACbe,KAAK+M,SAASX,QAAQ,mBAAoB,CAAEnM,MAAMm0B,EAAMn1B,YACrD,GAAIm1B,EAAM4tE,WAAY,CACzB,MACMqB,EADajvE,EAAM4tE,WACQvoF,MAAM1a,GAAgB,SAAVA,EAAE/B,MAC3CqmG,GACArjG,KAAK+M,SAASX,QAAQ,+BAAgC,CAAEnM,MAAM4G,KAAKwc,MAAMggF,EAAc/mG,MAAMwkG,aAEpG,IAER,CAEO,cAAAiC,CAAe9iG,GACnB,MAAMk/F,aAAEA,EAAYniG,IAAEA,GAA4DgD,KAAKsjG,gBAAgBrjG,GACnGk/F,IACAn/F,KAAK4gF,YAAYue,EAAc,gBACxBn/F,KAAKq+F,cAAcrhG,GAEjC,CAEO,YAAAgmG,CAAa/iG,GACjB,MAAMk/F,aAAEA,GAAqEn/F,KAAKsjG,gBAAgBrjG,GAC9Fk/F,GACAn/F,KAAK4gF,YAAYue,EAAc,OAEtC,CAEO,eAAAmE,CAAgBrjG,GACpB,IAAIk/F,EACAniG,EACJ,IAAK,MAAMgE,KAAKhB,KAAKq+F,cACjB,GAAIr+F,KAAKq+F,cAAcr9F,GAAGf,KAAOA,EAAI,CACjCk/F,EAAen/F,KAAKq+F,cAAcr9F,GAClChE,EAAMgE,EACN,KACH,CAEL,MAAO,CAAEm+F,eAAcniG,MAC1B,CAEO,uBAAAkiG,CAAwBn5D,GAC5B,MAAMw9D,EAAsBvjG,KAAKwjG,uBAAuBz9D,GACxD,GAAkC,YAA9Bw9D,EAAoBprF,MAEpB,OAEJ,MAAMgnF,EAAen/F,KAAKq+F,cAAckF,EAAoBE,gBACvDtE,GAILn/F,KAAK0jG,4BAA4BvE,EAAcoE,EAClD,CAEO,2BAAAG,CAA4BvE,EAA4Cp5D,GAC5E,OAAQA,EAAK5tB,OACT,IAAK,SACD,OAAOnY,KAAK2jG,8BAA8BxE,EAAcp5D,EAAK69D,2BAEjE,IAAK,QACD,OAAO5jG,KAAK6jG,6BAA6B1E,GAE7C,IAAK,QACD,OAAOn/F,KAAK4gF,YAAYue,EAAc,SAE1C,IAAK,QACD,OAAOn/F,KAAK6/F,6BAA6BV,EAAcp5D,EAAKz6B,OAEhE,IAAK,OACD,OAAOtL,KAAK4gF,YAAYue,EAAc,QAMjD,CAEO,6BAAAwE,CAA8BxE,EAA4Ct1F,GAE9E,MAAMsO,EAAoD,CACtD/b,KAAM,WACNwN,OAAQC,EAAQw4F,WAGhBlD,EAAa2E,UACb3E,EAAa2E,SAAS3rF,GAI1BgnF,EAAa5B,cAAcplF,EAC9B,CAEO,4BAAA0rF,CAA6B1E,GAEjC,MAAMhnF,EAAmD,CAAE/b,KAAM,WAC7D+iG,EAAa4E,SACb5E,EAAa4E,QAAQ5rF,GAIzBgnF,EAAa5B,cAAcplF,EAC9B,CAEO,WAAAyoE,CAAYue,EAEhBpjD,SAEA,MAAM5jC,EAAQ,CAAE/b,KAAM2/C,GAEI,QAA1BnwC,EAAAuzF,EADkB,KAAKpjD,YACG,IAAAnwC,GAAAA,EAAAhB,KAAAu0F,EAAAhnF,GAG1BgnF,EAAa5B,cAAcplF,EAC9B,CAEO,4BAAA0nF,CAA6BV,EAA4C7zF,GAE7E,MAAM6M,EAAQ,CAAE/b,KAAM,UAAWkP,SAC7B6zF,EAAaztF,SACbytF,EAAaztF,QAAQyG,GAIzBgnF,EAAa5B,cAAcplF,EAC9B,CAEO,sBAAAqrF,CAAuBz9D,SAC3B,IAAIniC,EACJ,MAAMuU,EAAyB,QAAjBvM,EAAAm6B,EAAKo5D,oBAAY,IAAAvzF,OAAA,EAAAA,EAAEuM,MAUjC,OANIvU,EAHCuU,EAGQ,CACLA,QACAsrF,eAAgB19D,EAAKo5D,aAAa6E,qBAClCJ,0BAA2B79D,GALtB/lC,KAAKikG,+BAA+Bl+D,GAQ1CniC,CACV,CAEO,8BAAAqgG,CAA+Bl+D,SACnC,IAAIniC,EAqBJ,OAnBIA,EADAmiC,EAAKq8D,kBACI,CACLjqF,MAAO,SACPsrF,eAAgB19D,EAAKq8D,kBACrBwB,0BAA2B79D,IAEP,UAAjBA,EAAKo5D,oBAAY,IAAAvzF,OAAA,EAAAA,EAAEo4F,sBACjB,CACL7rF,MAAO,QACPsrF,eAAgB19D,EAAKo5D,aAAa6E,qBAClCJ,0BAA2B79D,GAGtB,CACL5tB,MAAO,UACPsrF,oBAAgBt/F,EAChBy/F,0BAA2B79D,GAI5BniC,CACV,CAEO,iCAAAs9F,GACJlhG,KAAKw+F,qCAEDx+F,KAAK2iG,8BAA4E,IAA5C3iG,KAAKw+F,qCAC1Cx+F,KAAK2iG,6BAA6B50F,QAClC/N,KAAK2iG,kCAA+Bx+F,EAE3C,CAEO,wCAAAk9F,GACJrhG,KAAKy+F,+BAEDz+F,KAAK6iG,wBAAgE,IAAtC7iG,KAAKy+F,+BACpCz+F,KAAK6iG,uBAAuB90F,QAC5B/N,KAAK6iG,4BAAyB1+F,EAErC,CAEO,wBAAAu9F,CAAyBrD,GAC7B,IAAK//F,MAAMC,QAAQ8/F,GACf,MAAM,IAAIx+F,MAAM,6EAGpB,GAAIw+F,EAAc/4D,MAAM/V,GAAmB,iBAANA,IACjC,MAAM,IAAI1vB,MAAM,+EAEvB,QCzxBQqkG,GAOT,WAAA3nG,CAAoB25C,EAAiD5vB,GAAjDtmB,KAAQk2C,SAARA,EAAiDl2C,KAAOsmB,QAAPA,EAN7DtmB,KAAQ+M,SAAqBH,KAI7B5M,KAAYmkG,cAAG,EAGnBnkG,KAAK69D,kBACR,CAEM,UAAMzN,GAET,SADMpwD,KAAK69D,oBACN79D,KAAKokG,cACN,MAAM,IAAIvkG,MAAM,iBAEpB,aAAcG,KAAK4yF,UAAUzzD,SAASja,GACzC,CAEM,gBAAMm/E,GAET,SADMrkG,KAAK69D,oBACN79D,KAAKokG,cACN,MAAM,IAAIvkG,MAAM,iBAEpB,MAAMqlB,QAAYllB,KAAK4yF,SACvB,OAAO1tE,EAAIia,SAASja,IAAIzL,MAAMnK,GAAMA,EAAEhS,OAAS4nB,EAAIia,SAASs3C,UAC/D,CAEM,YAAM6tB,CAAOC,GAEhB,SADMvkG,KAAK69D,oBACN79D,KAAKwkG,cACN,MAAM,IAAI3kG,MAAM,uBAGdG,KAAKsmB,QAAQI,OAAO1mB,KAAKwkG,cAAe,CAAED,SACnD,CAEM,SAAA9kC,CAAUj0D,GAEb,OADAxL,KAAKg5B,YACEh5B,KAAK+M,SAASxB,IAAI,UAAWC,EACvC,CAEO,sBAAMqyD,GACV,IACI,GAAI79D,KAAKykG,kBACL,OAEJ,MAAMj9F,QAAexH,KAAKsmB,QAAQI,OA1DR,4BA2D1B1mB,KAAKykG,kBAAoBj9F,EAAO23B,SAASslE,kBACzCzkG,KAAKokG,cAAgB58F,EAAO23B,SAASulE,oBACrC1kG,KAAKwkG,cAAgBh9F,EAAO23B,SAASwlE,mBACxC,CAAC,MAAOr5F,GACL,MACH,CACJ,CAEO,YAAMsnF,GAEV,aADM5yF,KAAK69D,yBACE79D,KAAKsmB,QAAQI,OAAkB1mB,KAAKokG,cACpD,CAEO,eAAMprE,SACJh5B,KAAK69D,mBACP79D,KAAKmkG,eAGTnkG,KAAKmkG,cAAe,EACpBnkG,KAAKk2C,SAASld,UAAUh5B,KAAKykG,mBAAoBl2F,IACzCA,GAAQA,EAAK2W,KAAO3W,EAAKkoE,UACzBz2E,KAAK+M,SAASX,QAAQ,UAAWmC,EAAK2W,IAAIzL,MAAMnK,GAAMA,EAAEhS,OAASiR,EAAKkoE,WACzE,IAER,ECrFE,MAAMmuB,GAAoC,uBAOpCC,GAA+B,CAAC,kBAAmB,QCgBnDC,GAAc,CAAI51F,EAA2B4E,EAA6BC,IAC5E,IAAIjO,SAAW,CAACC,EAAS4H,KAE5B,IAAIo3F,GAAgB,EAEpB,MAAM/wF,EAAU1N,YAAW,KACvB,IAAKy+F,EACD,OAEJA,GAAgB,EAGhBp3F,EAFgBoG,GAAkB,wBAAwBD,IAE3C,GAChBA,GAEH5E,IACK1B,MAAM5J,IACEmhG,IAGLA,GAAgB,EAChB9wF,aAAaD,GACbjO,EAAQnC,GAAO,IAElBpB,OAAO8I,IACCy5F,IAGLA,GAAgB,EAChB9wF,aAAaD,GAEbrG,EAAOrC,GAAM,GACf,IC0ED05F,GAA4BC,YACrC,GAAkC,iBAAvBA,EAAYC,OACnB,MAAO,CAAEC,SAAS,EAAO75F,MAAO,2EAA2E25F,EAAYC,QAG3H,IAA4B,QAAxBt5F,EAAAq5F,EAAYG,oBAAY,IAAAx5F,OAAA,EAAAA,EAAEy5F,iBAAsE,kBAArB,QAAxBnqD,EAAA+pD,EAAYG,oBAAY,IAAAlqD,OAAA,EAAAA,EAAEmqD,gBAC7E,MAAO,CAAEF,SAAS,EAAO75F,MAAO,iGAAiG25F,EAAYG,aAAaC,gBAG9J,MAAMF,QAAEA,EAAO75F,MAAEA,GAvImB,CAAC6W,IACrC,GAAuB,iBAAZA,EACP,MAAO,CAAEgjF,SAAS,EAAO75F,MAAO,6EAA6E6W,GAGjH,MAAMmjF,EAAsBT,GAA6BxiG,QAAQrF,KAAUA,KAAOmlB,KAElF,OAAImjF,EAAoB5nG,OACb,CAAEynG,SAAS,EAAO75F,MAAO,gEAAgEg6F,EAAoB7nG,KAAK,SAGtH,CAAE0nG,SAAS,EAAMI,GAAIpjF,EAAS,EA4HVqjF,CAAgCP,EAAY9iF,SAEvE,OAAOgjF,EACD,CAAEA,SAAS,EAAMI,GAAIN,GACrB,CAAEE,UAAS75F,QAAO,EAGfm6F,GAAyBjtF,IASlC,GA/HiC,CAACnb,IAClC,GAAKA,EAAL,CAIA,GAAuB,iBAAZA,EACP,MAAM,IAAIwC,MAAM,kDAGpB,GAAIxC,EAAQjB,MAAgC,iBAAjBiB,EAAQjB,KAC/B,MAAM,IAAIyD,MAAM,iFAGpB,GAAIxC,EAAQkR,MAAgC,iBAAjBlR,EAAQkR,KAC/B,MAAM,IAAI1O,MAAM,gFAXnB,CAYA,EAwGD6lG,CAA6BltF,EAAQnb,SAjIJ,CAACsH,IAClC,GAAKA,GAIiB,iBAAXA,GAAyC,iBAAXA,EACrC,MAAM,IAAI9E,MAAM,2HACnB,EA4HD8lG,CAA4BntF,EAAQ7T,QAzFH,CAACqP,IAClC,GAAKA,EAAL,CAIA,GAAuB,iBAAZA,EACP,MAAM,IAAInU,MAAM,0CAGpB,GAAImU,GAAW,EACX,MAAM,IAAInU,MAAM,kDAPnB,CAQA,EAgFD+lG,CAA6BptF,EAAQxE,SA7EI,CAAC6xF,IAC1C,GAAKA,GAIuC,kBAAjCA,EACP,MAAM,IAAIhmG,MAAM,2DACnB,EAwEDimG,CAAqCttF,EAAQqtF,mCAEJ,IAA9BrtF,EAAQutF,mBAA0E,kBAA9BvtF,EAAQutF,kBACnE,MAAM,IAAIlmG,MAAM,mDAGhB2Y,EAAQyJ,UACRzJ,EAAQyJ,SAAS7iB,SAAS+iB,GAlHG,CAACA,IAClC,IAAKA,EAAQ9I,gBACT,MAAM,IAAIxZ,MAAM,8CAA8CgH,KAAKC,UAAUqb,MAGjF,IAAKA,EAAQ/lB,KACT,MAAM,IAAIyD,MAAM,mCAAmCgH,KAAKC,UAAUqb,MAGtE,GAAqB,aAAjBA,EAAQ/lB,OAAwB+lB,EAAQgzB,WACxC,MAAM,IAAIt1C,MAAM,yCAAyCgH,KAAKC,UAAUqb,KAC3E,EAuGyC6jF,CAA6B7jF,IACtE,QC1JQ8jF,GAWT,WAAA1pG,CACY+pB,EACAg1B,EACApuC,EACRnJ,EACQmiG,EACAjgC,GALAjmE,KAAOsmB,QAAPA,EACAtmB,KAAOs7C,QAAPA,EACAt7C,KAAMkN,OAANA,EAEAlN,KAAekmG,gBAAfA,EACAlmG,KAAUimE,WAAVA,EAhBJjmE,KAAAmmG,UAAY,IAAIrrF,IAGP9a,KAA+BomG,gCAA6D,GAErGpmG,KAAoBqmG,sBAAG,EAGvBrmG,KAAwBsmG,yBAAoB,GAUhDtmG,KAAKumG,gCAAgCxiG,EAASkiE,EACjD,CAEM,UAAMxsD,CAAK+sF,SACR1gG,QAAQof,IAAIllB,KAAKsmG,0BAEvB,IAAIG,QAAgBzmG,KAAKklB,MACzB,QAA4B,IAAjBshF,EACP,OAAOC,EAGX,GAA4B,iBAAjBD,EACP,OAAOC,EAAQpkG,QAAQ6iG,GAAWA,EAAO5nG,OAASkpG,IAGtD,GAA4B,iBAAjBA,EACP,MAAM,IAAI3mG,MAAM,6DAGpB,GAAI2mG,EAAaE,YAAa,CAC1B,MAAMC,EAAYH,EAAaE,YAAY1hG,cAC3CyhG,EAAUA,EAAQpkG,QAAQ6iG,GAAWA,EAAOjjF,SAASqjB,MAAMnjB,IAAY,IAAAvW,EAAA,OAAsB,UAAtBuW,EAAQykF,oBAAc,IAAAh7F,OAAA,EAAAA,EAAA05B,MAAMuhE,GAAOA,EAAG7hG,gBAAkB2hG,GAAU,KAC5I,CAED,GAAIH,EAAaM,WAAY,CACzB,MAAMC,EAAoBP,EAAaM,WAAW9hG,cAClDyhG,EAAUA,EAAQpkG,QAAQ6iG,GAAWA,EAAOjjF,SAASqjB,MAAMnjB,UAAY,OAAkB,QAAlBvW,EAAAuW,EAAQ2kF,kBAAU,IAAAl7F,OAAA,EAAAA,EAAE5G,iBAAkB+hG,CAAiB,KACjI,CAMD,OAJIP,EAAalpG,OACbmpG,EAAUA,EAAQpkG,QAAQ6iG,GAAWA,EAAO5nG,OAASkpG,EAAalpG,QAG/DmpG,CACV,CAEM,WAAMzH,CAAMgI,GACf,GAA8B,iBAAlBA,GAAuD,iBAAlBA,GAAyD,iBAAlBA,GAA8D,iBAAzBA,EAAc9B,OACvI,MAAM,IAAIrlG,MAAM,+EAGS,iBAAlBmnG,IACPA,EAAgB,CAAE9B,OAAQ8B,IAG9BvB,GAAsBuB,SAEhBlhG,QAAQof,IAAIllB,KAAKsmG,0BAEnBU,EAAcjB,oBACd/lG,KAAKkN,OAAOsT,MAAM,yCAAyCwmF,EAAc9B,gBAEnEllG,KAAKinG,wBAAwBD,EAAc9B,SAGrD,MAAMgC,EAAqC,CAAA,EAErClzF,EAAUgzF,EAAcnB,6BHvED,WGuEwDmB,EAAchzF,SHnEnE,IGqE1BmzF,QAAoCnnG,KAAKonG,sCAAsCJ,EAAeE,EAAkBlzF,GAEtH,GAAImzF,EACA,OAAOA,EAGX,MAAME,EAAoBrnG,KAAKsnG,gBAAgBxxF,KAAK9V,KAAM,CAAEwY,QAASwuF,EAAeE,mBAAkBlzF,YAEtG,GAAIgzF,EAAcnB,6BACd,OAAOwB,IAIX,MAAM5gC,EAAgBq+B,GAAmDuC,EACrErzF,EAAS,cAAcA,8BAAoCnN,KAAKC,UAAUkgG,MAK9E,OAFAvgC,EAAcjkE,OAAM,IAAMxC,KAAKunG,mBAAmBL,EAAiB/xD,cAE5DsxB,CACV,CAEM,SAAMvhD,GAOT,IAAI84C,QANEl4D,QAAQof,IAAIllB,KAAKsmG,0BAOvB,IACI,MAAM1iG,QAAe5D,KAAKsmB,QAAQI,OAA0C,0BAA2B,CAAE8gF,iBAAiB,IAC1HxpC,EAAOp6D,EAAOu7B,SAAS8+B,YAC1B,CAAC,MAAOv5D,GAEL,OADA1E,KAAKkN,OAAO5B,MAAM,kCAAmC5G,GAC9C,EACV,CACD,MAAM+hG,EAA8D,CAAA,EAC9DgB,EAAkBzpC,EAAK37D,QAAQ24D,GAAQA,EAAIyrC,SAAWzrC,EAAIyrC,QAAQ/oG,OAAS,IAEjF,IAAK,MAAMs9D,KAAOysC,EACd,IAAK,MAAMC,KAAa1sC,EAAIyrC,QAAS,CACjC,IAAIvB,EAASuB,EAAQiB,EAAUpqG,MAC1B4nG,IACDA,EAAS,CACL5nG,KAAMoqG,EAAUpqG,KAChB2kB,SAAU,IAEdwkF,EAAQiB,EAAUpqG,MAAQ4nG,GAG9B,MAAM/iF,EAAkD,CACpD9I,gBAAiB2hD,EAAI19D,KACrBqqG,iBAAkB3sC,EAAI91D,OAAS,GAC/B0iG,uBAAwB5sC,EAAIY,QAC5Bj4B,YAAa+jE,EAAU/jE,YACvBijE,aAAcc,EAAUxxD,SACxB2xD,gBAAiB7sC,EAAIwB,KACrBpgE,KAAM,MACN0qG,WAAYY,EAAUZ,YAG1B5B,EAAOjjF,SAAS/hB,KAAKiiB,EACxB,CAGL,MAAM8a,EAAUj9B,KAAKsmB,QAAQ2W,UACvB6qE,EAAkB7qE,EAAQ71B,KAAKk2B,GAAWA,EAAOtlB,WAAU3V,QAAQ0lG,QAA6C,IAAnBA,IAE7FC,EAAgB,kBAGtB,IAAIC,EAEJ,GAJwCjoG,KAAKsmB,QAAQE,UAAU8e,MAAM1gB,GAAWA,EAAOtnB,OAAS0qG,IAK5F,IACI,MAAMpkG,QAAe5D,KAAKsmB,QAAQI,OAA6BshF,EAAe,CAAE1pF,IAAKwpF,IACrFG,EAAerkG,EAAOu7B,SAASmc,OAClC,CAAC,MAAO52C,GAER,CAIL,IAAK,MAAM44B,KAAUL,QACXn3B,QAAQof,IAAIoY,EAAOC,aACpBl7B,QAAQuiB,GAAWA,EAAOtnB,KAAKgmB,WAAWshF,MAC1Cx9F,KAAIU,MAAO8c,IACR,MAAMsjF,EAAatjF,EAAOtnB,KAAKyvB,QAAQ63E,GAAmC,IAC1E,IAAIM,EAASuB,EAAQyB,GAChBhD,IACDA,EAAS,CACL5nG,KAAM4qG,EACNjmF,SAAU,IAEdwkF,EAAQyB,GAAchD,GAE1B,MAAMr0F,EAAO+T,EAAOma,MAAMmmE,OAEpBlqC,EAAMgD,EAAKvkD,MAAM0uF,GAAmBA,EAAe7qG,OAASggC,EAAOjrB,cACzE,IAAI+1F,EACAptC,GAAOA,EAAIyrC,UACX2B,EAAYptC,EAAIyrC,QAAQhtF,MAAM4uF,GAAiBA,EAAa/qG,OAAS4qG,KAGzE,MAAMhjG,QAAclF,KAAKsoG,iBAAiBhrE,EAAOtlB,SAAUiwF,GACrD9lF,EAAkD,CACpDgzB,WAAY7X,EAAOt0B,SACnBqQ,gBAAiBikB,EAAOjrB,YACxBw1F,gBAAiBh3F,EAAK2rD,OAAQxB,aAAA,EAAAA,EAAKwB,MACnCmrC,kBAAkB3sC,eAAAA,EAAK91D,QAAS,GAChC0iG,uBAAwB/2F,EAAKzT,cAAe49D,aAAA,EAAAA,EAAKY,SACjDj4B,YAAa9yB,EAAK8yB,cAAeykE,aAAA,EAAAA,EAAWzkE,aAC5CijE,aAAc/1F,EAAK+1F,eAAgBwB,aAAA,EAAAA,EAAWlyD,UAC9CqyD,cAAerjG,EACf9I,KAAM,WACN0qG,YAAYsB,aAAS,EAATA,EAAWtB,aAAcj2F,EAAKi2F,YAE9C5B,EAAOjjF,SAAS/hB,KAAKiiB,EAAQ,KAIzC,OAAOvlB,OAAOD,OAAO8pG,EACxB,CAEM,iBAAA+B,CAAkBtD,EAAoE/iF,GACzF,GAAuB,iBAAX+iF,GAAyC,iBAAXA,GAA2C,iBAAXA,GAAgD,iBAAlBA,EAAOA,OAC3G,MAAM,IAAIrlG,MAAM,+EAEpB,GAAuB,mBAAZsiB,EACP,MAAM,IAAItiB,MAAM,6CAKpB,MAAMqoG,EAA+B,iBAAXhD,EAAsBA,EAASA,EAAOA,OAC1Dl+D,EAAa,GAAG49D,KAAoCsD,IAC1D,IAEIO,EAFAC,EAAgF,CAAA,EAMpF,GAF0B1oG,KAAKmmG,UAAUp0F,IAAIm2F,GAGzC,MAAM,IAAIroG,MAAM,8BAA8BqoG,yBAGlDloG,KAAKmmG,UAAU56F,IAAI28F,GAEnB,MAAMtkG,EAAS,CACX0Z,YAAa,KACTtd,KAAKmmG,UAAUp6B,OAAOm8B,GAEtBO,EACKj7F,MAAK,IAAMxN,KAAKsmB,QAAQud,WAAWmD,KACnCxkC,OAAOuJ,GAAQ/L,KAAKkN,OAAOsT,MAAM,wCAAwCwmB,yBAAkCngC,KAAKC,UAAUiF,OAAQ,GAI/I,GAAsB,iBAAXm5F,EAAqB,CAC5B,MAAQA,OAAQrwE,KAAYmjE,GAASkN,EACrCwD,EAAa1Q,CAChB,CAcD,OAZAyQ,EAAkBzoG,KAAKsmB,QAAQsf,SAAS,CAAEtoC,KAAM0pC,EAAYjI,MAAO,CAAEmmE,OAAQwD,KAAiB3iE,IAC1F,GAAI/lC,KAAKmmG,UAAUp0F,IAAIm2F,GACnB,OAAO/lF,EAAQ4jB,EAClB,IAGL0iE,EAAgBjmG,OAAOuJ,IACnB/L,KAAKmmG,UAAUp6B,OAAOm8B,GAEtBloG,KAAKkN,OAAOgL,KAAK,sCAAsC8uB,yBAAkCngC,KAAKC,UAAUiF,KAAO,IAG5GnI,CACV,CAEM,cAAMgiC,CAASs/D,EAAoE/iF,GACtF,GAAuB,iBAAX+iF,GAAyC,iBAAXA,GAA2C,iBAAXA,GAAgD,iBAAlBA,EAAOA,OAC3G,MAAM,IAAIrlG,MAAM,+EAGpB,GAAuB,mBAAZsiB,EACP,MAAM,IAAItiB,MAAM,mDAGdiG,QAAQof,IAAIllB,KAAKsmG,0BAGvB,MAAM4B,EAA+B,iBAAXhD,EAAsBA,EAASA,EAAOA,OAC1Dl+D,EAAahnC,KAAK2oG,uBAAuBT,GAE/C,IAAIQ,EAAgF,CAAA,EAIpF,GAF0B1oG,KAAKmmG,UAAUp0F,IAAIm2F,GAGzC,MAAM,IAAIroG,MAAM,8BAA8BqoG,yBAKlD,GAFAloG,KAAKmmG,UAAU56F,IAAI28F,GAEG,iBAAXhD,EAAqB,CAC5B,MAAQA,OAAQrwE,KAAYmjE,GAASkN,EACrCwD,EAAa1Q,CAChB,CAED,UACUh4F,KAAKsmB,QAAQsf,SAAS,CAAEtoC,KAAM0pC,EAAYjI,MAAO,CAAEmmE,OAAQwD,KAAgB,CAAC3iE,EAA8C0G,KAC5H,GAAIzsC,KAAKmmG,UAAUp0F,IAAIm2F,GACnB,OAAO/lF,EAAQ4jB,EAAM0G,EACxB,GAER,CAAC,MAAO1gC,GAGL,MAFA/L,KAAKmmG,UAAUp6B,OAAOm8B,GAEhB,IAAIroG,MAAM,sCAAsCmnC,yBAAkCngC,KAAKC,UAAUiF,KAC1G,CAED,MAAO,CACHuR,YAAa,IAAMtd,KAAK4oG,kBAAkBV,GAEjD,CAEM,oBAAMW,CAAeC,WAGxB,GDtO6B,CAACA,IAClC,IAAKA,EACD,MAAM,IAAIjpG,MAAM,6IAGpB,MAAMqF,MAAEA,EAAK6jG,aAAEA,EAAY/0F,QAAEA,EAAOkxF,OAAEA,EAAM0B,aAAEA,EAAYE,WAAEA,EAAUkC,iBAAEA,GAAqBF,EAE7F,QAAqB,IAAV5jG,IAA2C,iBAAVA,IAAuBA,EAAMxH,QACrE,MAAM,IAAImC,MAAM,yCAGpB,QAA4B,IAAjBkpG,GAAwD,kBAAjBA,EAC9C,MAAM,IAAIlpG,MAAM,4CAGpB,QAAuB,IAAZmU,IAA+C,iBAAZA,GAAwBA,GAAW,GAC7E,MAAM,IAAInU,MAAM,+CAGpB,QAAsB,IAAXqlG,IAA6C,iBAAXA,IAAwBA,EAAOxnG,QACxE,MAAM,IAAImC,MAAM,0CAGpB,QAA4B,IAAjB+mG,KAAkCtoG,MAAMC,QAAQqoG,IAAiBA,EAAathE,MAAK2jE,GAAsB,iBAARA,KACxG,MAAM,IAAIppG,MAAM,2DAGpB,QAA0B,IAAfinG,IAAqD,iBAAfA,IAA4BA,EAAWppG,QACpF,MAAM,IAAImC,MAAM,8CAGpB,QAAgC,IAArBmpG,KAAsC1qG,MAAMC,QAAQyqG,IAAqBA,EAAiB1jE,MAAK1/B,GAA8B,iBAAZA,KACxH,MAAM,IAAI/F,MAAM,+DAGpB,MAAM8d,EAAW,uHAEjB,IAAK/gB,OAAOC,KAAKisG,GAAeprG,OAC5B,MAAM,IAAImC,MAAM8d,GAGpB,KAAKunF,GAAW4B,GAAgBF,GAAiBA,EAAalpG,QAAasrG,GAAqBA,EAAiBtrG,QAC7G,MAAM,IAAImC,MAAM8d,EACnB,ECyLGurF,CAAsBJ,GAElBA,EAAcC,eAAiB/oG,KAAKqmG,qBACpC,MAAM,IAAIxmG,MAAM,oGAGT,QAAX+L,EAAA5L,KAAKkN,cAAM,IAAAtB,GAAAA,EAAE4U,MAAM,mDAAmD3Z,KAAKC,UAAUgiG,MAErF,MAAMK,EAAmBnpG,KAAKopG,uBAAuBppG,KAAKklB,MAAO4jF,GAEjE,IAAKK,IAAqBA,EAAiBzrG,OACvC,MAAO,CAAEukB,SAAU,IAGvB,MAAMjU,KAAEA,EAAI2D,OAAEA,GAAW3R,KAAKqpG,+CAA+CF,EAAkBL,GAE/F,IAAK96F,EAGD,OAFa,QAAbktC,EAAAl7C,KAAKkN,cAAQ,IAAAguC,GAAAA,EAAA16B,MAAM,6CAA6C7O,KAEzD,CAAEsQ,SAAUknF,GAGvB,MAAMjC,EAAqC,CAAE/xD,gBAAYhxC,GAEnD6P,EAAU80F,EAAc90F,SH9TY,IGqU1C,MAAO,CAAEiO,SAAU,OALG6iF,IAAY,IAAM9kG,KAAKspG,iBAAiB,CAAE9wF,QAASswF,EAAe5B,mBAAkBtiF,OAAQ,oBAC9G5Q,EACA,cAAcA,qDAA2DnN,KAAKC,UAAUgiG,OAI/F,CAEM,gBAAMS,CAAWpnF,SACpBniB,KAAKkN,OAAOsT,MAAM,8CAA8C3Z,KAAKC,UAAUqb,MDvLlD,CAACA,IAClC,GAAuB,iBAAZA,EACP,MAAM,IAAItiB,MAAM,mCAGpB,GAAuC,iBAA5BsiB,EAAQ9I,kBAAiC8I,EAAQ9I,gBAAgB3b,OACxE,MAAM,IAAImC,MAAM,0DAGpB,GAA4B,iBAAjBsiB,EAAQ/lB,OAAsB,CAAC,MAAO,YAAYyP,SAASsW,EAAQ/lB,MAC1E,MAAM,IAAIyD,MAAM,4DAA4DsiB,EAAQ/lB,QAGxF,QAAwC,IAA7B+lB,EAAQwlF,kBAAwE,iBAA7BxlF,EAAQwlF,iBAClE,MAAM,IAAI9nG,MAAM,0CAGpB,QAA8C,IAAnCsiB,EAAQylF,wBAAoF,iBAAnCzlF,EAAQylF,uBACxE,MAAM,IAAI/nG,MAAM,gDAGpB,QAAuC,IAA5BsiB,EAAQ0lF,iBAAsE,iBAA5B1lF,EAAQ0lF,gBACjE,MAAM,IAAIhoG,MAAM,yCAGpB,QAAmC,IAAxBsiB,EAAQwhB,aAA8D,iBAAxBxhB,EAAQwhB,YAC7D,MAAM,IAAI9jC,MAAM,qCAGpB,QAAoC,IAAzBsiB,EAAQykF,gBAAkCtoG,MAAMC,QAAQ4jB,EAAQykF,eAAiBzkF,EAAQykF,aAAathE,MAAK2jE,GAAsB,iBAARA,KAChI,MAAM,IAAIppG,MAAM,2DAGpB,QAAkC,IAAvBsiB,EAAQgzB,YAA4D,iBAAvBhzB,EAAQgzB,WAC5D,MAAM,IAAIt1C,MAAM,oCAGpB,QAAqC,IAA1BsiB,EAAQomF,eAAkE,iBAA1BpmF,EAAQomF,cAC/D,MAAM,IAAI1oG,MAAM,uCAGpB,QAAkC,IAAvBsiB,EAAQ2kF,YAA4D,iBAAvB3kF,EAAQ2kF,WAC5D,MAAM,IAAIjnG,MAAM,mCACnB,EC8IG2pG,CAAsBrnF,GAEtB,MAAMskF,QAAgBzmG,KAAKklB,MD7ID,IAAC6P,IC+IR5S,ED9IvBvlB,OAAOC,KAAKk4B,GAAK31B,SAAQpC,IACJ,OAAb+3B,EAAI/3B,SAA8BmH,IAAb4wB,EAAI/3B,WAClB+3B,EAAI/3B,EACd,IC6IU,QAAX4O,EAAA5L,KAAKkN,cAAM,IAAAtB,GAAAA,EAAE4U,MAAM,mDAEnB,MAAMipF,EAAkBzpG,KAAK0pG,gCAAgCjD,EAAStkF,GAItE,OAFAniB,KAAKkN,OAAOsT,MAAM,iCAAiC3Z,KAAKC,UAAUqb,MAE3D,CAAEskF,QAASgD,EACrB,CAEM,wBAAME,GACT3pG,KAAKkN,OAAOsT,MAAM,wEAEZxgB,KAAKkmG,gBAAgB9lG,OAAO,CAAEqmG,aAAStiG,GAChD,CAEO,gBAAAilG,CAAiB3C,EAA4CpkG,GACjE,MAAMunG,EAA8BnD,EAAQpkG,QAAQ6iG,IAChD,IAAI7iG,EAAO6iG,QAAU7iG,EAAO6iG,SAAWA,EAAO5nG,KAA9C,CAIA,GAAI+E,EAAOykG,WAAY,CACnB,MAAMqC,EAAmBjE,EAAOjjF,SAAS5f,QAAQ8f,GAAoDA,EAAQ2kF,YAAc3kF,EAAQ2kF,aAAezkG,EAAOykG,aAEzJ,IAAKqC,EAAiBzrG,OAAQ,OAE9BwnG,EAAOjjF,SAAWknF,CACrB,CAED,GAAI9mG,EAAOukG,aAAc,CACrB,MAAMuC,EAAmBjE,EAAOjjF,SAAS5f,QAAQ8f,UAAoD,eAAAvW,EAAAvJ,EAAOukG,mCAAclxE,OAAOgxE,IAAuB,IAAA96F,EAAC,OAAoB,QAApBA,EAAAuW,EAAQykF,oBAAY,IAAAh7F,OAAA,EAAAA,EAAEC,SAAS66F,EAAY,GAAC,IAErM,IAAKyC,EAAiBzrG,OAAQ,OAE9BwnG,EAAOjjF,SAAWknF,CACrB,CAED,GAAI9mG,EAAO2mG,iBAAkB,CACzB,MAAMG,EAAmBjE,EAAOjjF,SAAS5f,QAAQ8f,IAAoD,IAAAvW,EAAA,OAAyB,QAAzBA,EAAAvJ,EAAO2mG,wBAAkB,IAAAp9F,OAAA,EAAAA,EAAAC,SAASsW,EAAQ9I,gBAAgB,IAE/J,IAAK8vF,EAAiBzrG,OAAQ,OAE9BwnG,EAAOjjF,SAAWknF,CACrB,CAED,OAAOjE,CA1BN,CA0BY,IAGjB,OAAO0E,EAA4BxiG,KAAK89F,GAAWA,EAAOjjF,WAAU9jB,KAAK,EAC5E,CAEO,qBAAMmpG,EAAgB9uF,QAAEA,EAAO0uF,iBAAEA,EAAgBlzF,QAAEA,YACvD,MAAM0zF,QAAkB1nG,KAAKuyB,IAAI/Z,EAAQ0sF,QAEzC,QAAyB,IAAdwC,EACP,MAAM,IAAI7nG,MAAM,UAAU2Y,EAAQ0sF,qBAGtC,MAAMl3F,KAAEA,EAAI2D,OAAEA,GAAW3R,KAAK6pG,sCAAsCnC,EAAWlvF,GAE/E,IAAKxK,EAID,OAHAhO,KAAKkN,OAAOsT,MAAM,6CAA6C7O,KAGxD6G,EAAQqtF,6BACTf,IAAmD,IAAM9kG,KAAK8pG,YAAYtxF,EAASxE,IAAUA,EAAS,cAAcA,gCACpHhU,KAAK8pG,YAAYtxF,EAASxE,GAGpC,MAAM+1F,QAAwB/pG,KAAKspG,iBAAiB,CAAE9wF,UAASoM,OAAQ,QAASsiF,qBAIhF,GAFa,QAAbt7F,EAAA5L,KAAKkN,cAAQ,IAAAtB,GAAAA,EAAA4U,MAAM,qCAAqC3Z,KAAKC,UAAUijG,sBAAoC/1F,KAEvGwE,EAAQqtF,6BACR,OAAOf,IAAY,IAAM9kG,KAAKgqG,2BAA2BxxF,EAASuxF,EAAiB/1F,IAAUA,EAAS,cAAcA,gCAGxH,MAAMpQ,QAAe5D,KAAKgqG,2BAA2BxxF,EAASuxF,EAAiB/1F,GAI/E,OAFa,QAAbknC,EAAAl7C,KAAKkN,cAAQ,IAAAguC,GAAAA,EAAA16B,MAAM,yCAAyC3Z,KAAKC,UAAU0R,EAAQ0sF,YAAYr+F,KAAKC,UAAUlD,MAEvGA,CACV,CAEO,SAAM2uB,CAAI2yE,GACd,aAAcllG,KAAKklB,OAAOzL,MAAMwwF,GAAqBA,EAAiB3sG,OAAS4nG,GAClF,CAEO,iBAAM4E,CAAY9C,EAAuDhzF,GAC7E,MAAMk0F,EAAalB,EAAc9B,OAC3BwC,QAAkB1nG,KAAKuyB,IAAI21E,GAEjC,QAAyB,IAAdR,EACP,MAAM,IAAI7nG,MAAM,UAAUqoG,gBAG9B,MAAMgC,EAAuBlD,EAAc/kF,SAAWjiB,KAAKmqG,oBAAoBnD,EAAc/kF,SAAU,CAAE7lB,KAAM,QAAW4D,KAAKmqG,oBAAoBzC,EAAUzlF,SAAU,CAAE7lB,KAAM,QAEzKguG,EAA4BpD,EAAc/kF,SAAWjiB,KAAKmqG,oBAAoBnD,EAAc/kF,SAAU,CAAE7lB,KAAM,aAAgB4D,KAAKmqG,oBAAoBzC,EAAUzlF,SAAU,CAAE7lB,KAAM,aAEzL,IAAI+lB,EAsBJ,GAnBK6kF,EAAcriG,QAAmC,UAAzBqiG,EAAcriG,SACvCwd,EAAUioF,GAA6BF,GAId,aAAzBlD,EAAcriG,SACdwd,EAAU+nF,GAIsB,iBAAzBlD,EAAcriG,QAAuBqiG,EAAcriG,OAAOq2D,MACjE74C,EAAUniB,KAAKmqG,oBAAoBzC,EAAUzlF,SAAU,CAAE+4C,IAAKgsC,EAAcriG,OAAOq2D,OAInD,iBAAzBgsC,EAAcriG,QAAuBqiG,EAAcriG,OAAOqE,WACjEmZ,EAAUniB,KAAKmqG,oBAAoBzC,EAAUzlF,SAAU,CAAEjZ,SAAUg+F,EAAcriG,OAAOqE,SAAUgyD,IAAKgsC,EAAcriG,OAAOq2D,QAG3H74C,EACD,MAAM,IAAItiB,MAAM,oCAAoCgH,KAAKC,UAAUkgG,qCAKvE,aAFqBhnG,KAAKgqG,2BAA2BhD,EAAe7kF,EAASnO,EAGhF,CAEO,gCAAMg2F,CAA2BhD,EAAuD7kF,EAAiDnO,WAClI,QAAXpI,EAAA5L,KAAKkN,cAAM,IAAAtB,GAAAA,EAAE4U,MAAM,oCAAoC3Z,KAAKC,UAAUqb,MAEjEA,EAAQgzB,aACThzB,EAAQgzB,iBAAmBn1C,KAAKqqG,eAAeloF,EAAQ9I,gBAAiB2tF,EAAc3pG,QAAS2pG,EAAcjjG,UAGjH,MAAMijC,EAAa,GAAG49D,KAAoCoC,EAAc9B,SAElEoF,EAAgB,CAClB7rE,wBAAyBzqB,EAAUA,EAAU,IHleP,IGmetCwoB,cAAexoB,EAAUA,EAAU,IHneG,KGsepCpQ,QAAe5D,KAAKsmB,QAAQI,OAAOsgB,EAAYggE,EAAc3pG,QAAS,CAAE2L,SAAUmZ,EAAQgzB,YAAcm1D,GAI9G,OAFW,QAAXpvD,EAAAl7C,KAAKkN,cAAM,IAAAguC,GAAAA,EAAE16B,MAAM,oDAAoD3Z,KAAKC,UAAUlD,MAE/E,CACH4U,QAASwuF,EACT7kF,QAAS,IAAKA,EAAS/lB,KAAM,YAC7BwH,OAAQA,EAAOu7B,SAEtB,CAEO,sBAAMmqE,EAAiB9wF,QAAEA,EAAOoM,OAAEA,EAAMsiF,iBAAEA,wBAC9Ct7F,EAAA5L,KAAKkN,uBAAQsT,MAAM,qCAAqCxgB,KAAKuqG,oDAAoD1jG,KAAKC,UAAU0R,MAEhI,MAAMgyF,QAA2BxqG,KAAKyqG,+BAEzB,QAAbvvD,EAAAl7C,KAAKkN,cAAQ,IAAAguC,GAAAA,EAAA16B,MAAM,6BAA6BgqF,KAEhD,MAAME,EAAe1qG,KAAK2qG,kBAAkB/lF,EAAQpM,EAASgyF,GAEvDI,QAAqB5qG,KAAK6qG,oBAErB,QAAXtsC,EAAAv+D,KAAKkN,cAAM,IAAAqxD,GAAAA,EAAE/9C,MAAM,8CAA8C3Z,KAAKC,UAAU4jG,mBAA8B7jG,KAAKC,UAAU8jG,MAE7H,MAAM5hG,QAAiBhJ,KAAKimE,WAAW5zD,YAAYrS,KAAKuqG,wBAAwBnsC,MAAMssC,EAAcE,GAEpG1D,EAAiB/xD,WAAansC,EAAS/I,GAE5B,QAAXg5B,EAAAj5B,KAAKkN,cAAM,IAAA+rB,GAAAA,EAAEzY,MAAM,qCAAqCxX,EAAS/I,aAEjED,KAAK8qG,2BAA2B9hG,EAAU4b,GAE1C,MAAM5Q,GAAUwE,EAAQxE,QHpgBQ,KGsgBhChU,KAAK+qG,sBAAsB,CACvB7F,OAAmB,UAAXtgF,EAAsBpM,EAAmD0sF,YAAS/gG,EAC1FgxC,WAAYnsC,EAAS/I,GACrBuqG,qBACAx2F,UACA2J,SAAU,cAAc3J,oDAAqE,UAAX4Q,EAC5E,cAAepM,EAAmD0sF,SAClE,QAAQtgF,yBAA8B/d,KAAKC,UAAW0R,SAMhE,aAFsBxY,KAAKgrG,uBAAuB,CAAE71D,WAAYnsC,EAAS/I,GAAIwsC,OAAQi+D,EAAaO,cAAermF,SAAQpM,WAG5H,CAEO,sBAAM8vF,CAAiBroG,EAAYgoG,WACvC,QAA4B,IAAjBA,EACP,OAAgE,UAAzDA,EAAaxuF,MAAMyxF,GAAgBA,EAAYjrG,KAAOA,WAAG,IAAA2L,OAAA,EAAAA,EAAE1G,MAItE,MAAME,EAAqB,QAAZ81C,EAAAl7C,KAAKs7C,eAAO,IAAAJ,OAAA,EAAAA,EAAEkzC,SAASnuF,GAEtC,aADoBmF,aAAM,EAANA,EAAQg3E,WAE/B,CAEO,4BAAM4uB,EAAuB71D,WAAEA,EAAUvwB,OAAEA,EAAMpM,QAAEA,EAAOi0B,OAAEA,cAChE,IACI,MAAMkH,QAAiB3zC,KAAKomG,gCAAgCjxD,GAAYjmC,QAElEi8F,EAAwB,UAAXvmF,EAAqB,cAAc+uB,EAASuxD,UAAY,GAkB3E,OAjBW,QAAXt5F,EAAA5L,KAAKkN,cAAM,IAAAtB,GAAAA,EAAE4U,MAAM,yBAAyB2qF,MAAetkG,KAAKC,UAAU6sC,EAASxxB,gDAAgDgzB,KAEnIn1C,KAAKorG,qBAAqBj2D,GAEb,QAAb+F,EAAAl7C,KAAKkN,cAAQ,IAAAguC,GAAAA,EAAA16B,MAAM,oBAAoB20B,2BAEd,UAArBxB,EAASyxD,oBAAY,IAAA7mC,OAAA,EAAAA,EAAE8mC,uBACjBrlG,KAAKqrG,eAAe,CACtBnG,OAAQvxD,EAASuxD,OACjB/iF,QAASwxB,EAASxxB,QAClB9f,OAAmB,mBAAXuiB,EACF,CAAEokF,iBAAmBxwF,EAAmDwwF,iBAAkBpC,aAAepuF,EAAmDouF,aAAcE,WAAatuF,EAAmDsuF,iBAC1O3iG,EACNsoC,WAIDkH,EAASxxB,OAEnB,CAAC,MAAO7W,GAGL,MAFAtL,KAAKorG,qBAAqBj2D,GAEpB,IAAIt1C,MAAMyL,EACnB,CACJ,CAEO,kCAAMm/F,GACV,MAAMzjE,EH/kBiC,+BG+kBct4B,GAAMw6D,aAI3D,aAFMlpE,KAAKsmB,QAAQsf,SAASoB,GAAY,CAACjB,EAAMwH,IAAavtC,KAAKsrG,wBAAwBvlE,EAAMwH,KAExFvG,CACV,CAEO,uBAAAskE,CAAwBvlE,EAAWwH,GACvC,MAAMvkC,SAAEA,GAAaukC,EAEf43D,EAAUH,GAAyBj/D,GAEzC,IAAKo/D,EAOD,OANAnlG,KAAKkN,OAAOsT,MAAM,oCAAoC+sB,EAASvkC,0CAA0Cm8F,EAAQ75F,SAEjHtL,KAAKomG,gCAAgCp9F,GAAU2E,OAAOw3F,EAAQ75F,YAE9DtL,KAAKorG,qBAAqBpiG,GAK9B,MAAMuiG,EAAgBpG,EAAQI,GAE9BvlG,KAAKomG,gCAAgCp9F,GAAUjD,QAAQwlG,GAEvDvrG,KAAKwrG,6BAA6BxiG,EACrC,CAEO,iBAAA2hG,CAAkB/lF,EAAgCpM,EAA0FwuB,SAChJ,MAAMykE,EAAYzrG,KAAKsmB,QAAQtd,SAASqJ,aAAerS,KAAKsmB,QAAQtd,SAASqQ,gBAEvEqyF,GAAmD,QAAtC9/F,EAAA5L,KAAKimE,WAAW5zD,YAAYo5F,UAAU,IAAA7/F,OAAA,EAAAA,EAAE1G,QAAS,GAE9DymG,EAAmB,CACrBp+D,SAAUvtC,KAAKsmB,QAAQtd,SAASA,SAChCg+B,aACAikE,cAAe,CAAEhrG,GAAID,KAAKsmB,QAAQtd,SAASA,SAAUqQ,gBAAiBoyF,EAAW9D,iBAAkB+D,GACnGE,YAAa,OAGjB,MAAkB,UAAXhnF,EACD,IAAK+mF,EAAkBzG,OAAQ1sF,GAC/B,IAAKmzF,EAAkB7C,cAAetwF,EAC/C,CAEO,uBAAMqyF,GACV,MAAM3sD,EAAMl+C,KAAKs7C,QAAQ8M,KAEzB,IAAKlK,EACD,OAGJ,MAAMmG,QAAenG,EAAIsF,YAEzB,MAAO,CACH7oC,KAAM0pC,EAAOyG,OHpoBc,KGooBsB,EAAIzG,EAAO1pC,IAC5DoI,MAAOshC,EAAOwG,MHtoBY,KGsoBsB,EAAIxG,EAAOthC,KAC3D8nC,MHvoB0B,IGwoB1BC,OHvoB2B,IGyoBlC,CAEO,qBAAAigD,EAAsB51D,WAAEA,EAAU+vD,OAAEA,EAAMsF,mBAAEA,EAAkBx2F,QAAEA,EAAO2J,SAAEA,IAE7E,IAAI5X,EAA2C,OAE3C4H,EAAmC,OAEvC,MAAMuB,EFtpBa,EAAI2E,EAAkGC,EAA6BC,IAEnJ,IAAIjO,SAAW,CAACC,EAAS4H,KAC5B,MAAMqG,EAAU1N,YAAW,KAIvBqH,EAFgBoG,GAAkB,wBAAwBD,IAE3C,GAChBA,GAEqB,IAAIhO,QAAW+N,GAGlCrG,MAAM5J,IACHqQ,aAAaD,GACbjO,EAAQnC,EAAO,IAElBpB,OAAO8I,IACJ2I,aAAaD,GACbrG,EAAOrC,EAAM,GACf,IEkoBUsI,EAA8B,CAACmI,EAAKgmE,KAChDh8E,EAAUgW,EACVpO,EAASo0E,CAAG,GACb/tE,EAAS2J,GAEZ3d,KAAKomG,gCAAgCjxD,GAAc,CAAE+vD,SAAQn/F,UAAS4H,SAAQuB,UAAS83B,WAAYwjE,EACtG,CAEO,oBAAMH,CAAeh4F,EAAqBhV,EAAc0G,GAE5D,aADqB/D,KAAKsmB,QAAQI,OAAqC,2BAA4B,CAAEy3C,KAAM9rD,EAAatO,QAAS,IAAKA,EAAS8nG,oBAAoB,MACrJ1sE,SAAS8/B,EAC1B,CAEO,0BAAA6rC,CAA2B9hG,EAAgD4b,GAC/E,MAAMvS,YAAEA,GAAgBrJ,EAElB4Z,EAAQvQ,EAAYyoD,mBAAmBuF,IACzC,GAAIA,EAAKpgE,KAAO+I,EAAS/I,GACrB,OAGJ,MAAM6rG,EAAgB9rG,KAAKomG,gCAAgC/lC,EAAKpgE,IAEhE,IAAK6rG,EACD,OAAOlpF,IAGX,MAAMjF,EAAW,kBAA6B,UAAXiH,EAAqB,iBAAiBknF,EAAc5G,SAAW,IAAItgF,6BAAmC5b,EAASqJ,YAAY/U,sCAE9JwuG,EAAcn+F,OAAOgQ,GAErB3d,KAAKwrG,6BAA6BnrC,EAAKpgE,IAEvC2iB,GAAO,GAEd,CAEO,kCAAM4oF,CAA6Br2D,GACvC,MAAM22D,EAAgB9rG,KAAKomG,gCAAgCjxD,GAE3D,IAAK22D,EACD,OAIsB9rG,KAAKsmB,QAAQud,WAAWioE,EAAc9kE,YAE9CxkC,OAAO8I,GAAUtL,KAAKkN,OAAOgL,KAAK5M,YAE7CtL,KAAKomG,gCAAgCjxD,EAC/C,CAEO,kBAAAoyD,CAAmBpyD,GAClBA,GAILn1C,KAAKorG,qBAAqBj2D,EAC7B,CAEO,oBAAAi2D,CAAqBj2D,GACzB,MAAM42D,EAAQ/rG,KAAKs7C,QAAQ8yC,SAASj5C,GAEpC42D,SAAAA,EAAOh+F,QAAQvL,OAAOuJ,GAAQ/L,KAAKkN,OAAO5B,MAAMS,IACnD,CAEO,+BAAAw6F,CAAgCxiG,EAAkCkiE,iBAEjEA,GAKLjmE,KAAKqmG,qBAA2E,kBAA9B,QAAfz6F,EAAA7H,EAAQ0iG,eAAO,IAAA76F,OAAA,EAAAA,EAAEogG,0BAC9CjoG,EAAQ0iG,QAAQuF,wBAGtBhsG,KAAKuqG,uBAAoE,QAA3ChsC,EAAiB,QAAjBrjB,EAAAn3C,EAAQ0iG,eAAS,IAAAvrD,OAAA,EAAAA,EAAAqvD,8BAA0B,IAAAhsC,EAAAA,EH1tBxC,kBG4tBjCv+D,KAAKisG,+BAA6E,QAA5C3sC,EAAiB,QAAjBrmC,EAAAl1B,EAAQ0iG,eAAS,IAAAxtE,OAAA,EAAAA,EAAAwF,+BAA2B,IAAA6gC,EAAAA,EH/tBzC,KGqtBrCt/D,KAAKqmG,sBAAuB,CAWnC,CAEO,qCAAAwD,CAAsC3E,EAAyC1sF,GACnF,MAAM0zF,EAAYlsG,KAAKmsG,uCAEvB,IAAKD,EAAUl+F,KACX,OAAOk+F,EAKX,OAF8BlsG,KAAKosG,mCAAmClH,EAAQ1sF,GAMvE,CAAExK,MAAM,GAHJ,CAAEA,MAAM,EAAO2D,OAAQ,iBAAiBuzF,EAAO5nG,4BAI7D,CAEO,8CAAA+rG,CAA+CpnF,EAAoD5f,GACvG,OAAwB,IAApB4f,EAASvkB,OACF,CAAEsQ,MAAM,EAAO2D,OAAQ,oDAAoD9K,KAAKC,UAAUzE,MAGjE,kBAAzBA,eAAAA,EAAQ0mG,eAA+B1mG,EAAO0mG,aAIlD/oG,KAAKmsG,uCAHD,CAAEn+F,MAAM,EAAO2D,OAAQ,uDAIrC,CAEO,oCAAAw6F,GACJ,IAAKnsG,KAAKqmG,qBACN,MAAO,CAAEr4F,MAAM,EAAO2D,OAAQ,iEAKlC,OAF2B3R,KAAKimE,WAAW5zD,YAAYrS,KAAKuqG,wBAMrD,CAAEv8F,MAAM,GAHJ,CAAEA,MAAM,EAAO2D,OAAQ,yCAAyC3R,KAAKuqG,oCAInF,CAEO,kCAAA6B,CAAmClH,EAAyC1sF,GAMhF,OAAKA,EAAQ7T,OAMU,UAAnB6T,EAAQ7T,OACD6T,EAAQyJ,SACTzJ,EAAQyJ,SAAS5f,QAAQ8f,GAA6B,aAAjBA,EAAQ/lB,MAAuB+lB,EAAQgzB,aAAYz3C,OAAS,GAAK8a,EAAQyJ,SAAS5f,QAAQ8f,GAA6B,QAAjBA,EAAQ/lB,OAAgBsB,OAAS,EAC5KwnG,EAAOjjF,SAAS5f,QAAQ8f,GAA6B,aAAjBA,EAAQ/lB,MAAuB+lB,EAAQgzB,aAAYz3C,OAAS,GAAKwnG,EAAOjjF,SAAS5f,QAAQ8f,GAA6B,QAAjBA,EAAQ/lB,OAAgBsB,OAAS,EAG7J,aAAnB8a,EAAQ7T,OACD6T,EAAQyJ,SACTzJ,EAAQyJ,SAAS5f,QAAQ8f,GAA6B,QAAjBA,EAAQ/lB,OAAgBsB,OAAS,EACtEwnG,EAAOjjF,SAAS5f,QAAQ8f,GAA6B,QAAjBA,EAAQ/lB,OAAgBsB,OAAS,GAGpE8a,EAAQ7T,QACR,GAlBA6T,EAAQyJ,SACTzJ,EAAQyJ,SAASvkB,OAAS,EAC1BwnG,EAAOjjF,SAASvkB,OAAS,CAoBtC,CAEO,sBAAAirG,CAAuBT,GAC3B,MAAO,GAAGtD,KAAoCsD,GACjD,CAEO,0BAAAmE,CAA2BC,GAC/BtsG,KAAKsmG,yBAA2BtmG,KAAKsmG,yBAAyBjkG,QAAQ6M,GAAYA,IAAYo9F,GACjG,CAEO,iBAAA1D,CAAkBV,GACtBloG,KAAKmmG,UAAUp6B,OAAOm8B,GAEtB,MAAMlhE,EAAahnC,KAAK2oG,uBAAuBT,GAGzCqE,EAAoBvsG,KAAKsmB,QAAQud,WAAWmD,GAElDhnC,KAAKsmG,yBAAyBpmG,KAAKqsG,GAEnCA,EACK/+F,MAAK,KACFxN,KAAKqsG,2BAA2BE,EAAkB,IAErD/pG,OAAOuJ,IACJ/L,KAAKkN,OAAO5B,MAAM,wCAAwC07B,yBAAmCj7B,GAE7F/L,KAAKqsG,2BAA2BE,EAAkB,GAE7D,CAEO,mBAAApC,CAAoBloF,EAAoD5f,GAC5E,OAAIA,EAAOjG,KACA6lB,EAASxI,MAAM0I,GAAYA,EAAQ/lB,OAASiG,EAAOjG,OAG1DiG,EAAO2G,SACAiZ,EAASxI,MAAM0I,GAAY9f,EAAO24D,IACnC74C,EAAQ9I,kBAAoBhX,EAAO24D,KAAO74C,EAAQgzB,aAAe9yC,EAAO2G,SACxEmZ,EAAQgzB,aAAe9yC,EAAO2G,WAIpC3G,EAAO24D,IACA/4C,EAASxI,MAAM0I,GAAYA,EAAQ9I,kBAAoBhX,EAAO24D,WADzE,CAGH,CAEO,+BAAA0uC,CAAgCjD,EAA4CtkF,GAChF,MAAMsnF,EAAkBhD,EAAQ3pG,QAAO,CAAC0vG,EAA6DtH,KACjGA,EAAOjjF,SAAS7iB,SAASqtG,IACrB,MAAMtH,EAAUvoG,OAAOC,KAAKslB,GAASuT,OAAO14B,UACxC,MAAe,iBAARA,UACD4O,EAAAuW,EAAQykF,mCAAclxE,OAAOgxE,UAAwB,OAA2B,QAA3B96F,EAAA6gG,EAAe7F,oBAAY,IAAAh7F,OAAA,EAAAA,EAAEC,SAAS66F,EAAY,IACtG+F,EAAuBzvG,KAAUmlB,EAAgBnlB,EAAI,IAGhE,IAAKmoG,EACD,OAGJ,MAAMuH,EAAsD,CACxDxH,OAAQA,EAAO5nG,KACfspG,aAAc6F,EAAe7F,aAC7BxpG,YAAaqvG,EAAe7E,uBAC5BjkE,YAAa8oE,EAAe9oE,YAC5B64B,KAAMiwC,EAAe5E,gBACrBf,WAAY2F,EAAe3F,YAG/B0F,EAAqBtsG,KAAKwsG,EAAe,IAGtCF,IACR,IAEH,OAAO/C,CACV,CAEO,6BAAMxC,CAAwBiB,SAClCloG,KAAKkN,OAAOsT,MAAM,wDAAwD0nF,KAE1E,MAAMyE,QAAc3sG,KAAKkmG,gBAAgB3zE,MAEnCq6E,EAAwB,QAAVhhG,EAAA+gG,EAAMp+F,YAAI,IAAA3C,OAAA,EAAAA,EAAE66F,QAEhC,IAAKmG,EAGD,YAFA5sG,KAAKkN,OAAOsT,MAAM,6CAKfosF,EAAY1E,GAEnB,MAAM2E,EAAe,IACdF,EAAMp+F,KACTk4F,QAASmG,SAGP5sG,KAAKkmG,gBAAgB9lG,OAAOysG,GAElC7sG,KAAKkN,OAAOsT,MAAM,mCAAmC0nF,yBACxD,CAEO,+BAAM4E,CAA0B9F,WACpC,MAEM+F,EAAuC,QAAtB7xD,EAAY,QAAZtvC,SAFH5L,KAAKkmG,gBAAgB3zE,OAEZhkB,YAAM,IAAA3C,OAAA,EAAAA,EAAA66F,eAAU,IAAAvrD,OAAA,EAAAA,EAAA8rD,EAAc9B,QAE3D,OAAO6H,eAAAA,EAAgB5qF,OAC1B,CAEO,2CAAMilF,CAAsCJ,EAAuDE,EAAuBlzF,GAC9H,MAAMg5F,QAA0BhtG,KAAK8sG,0BAA0B9F,GAE/D,IAAKgG,EACD,OAGJ,MAAMx0F,EAAU,IACTwuF,EACHriG,OAAQ,CACJq2D,IAAKgyC,EAAkB3zF,gBACvBrQ,SAAUgkG,EAAkB73D,aAGpC,IAGI,aAFuBn1C,KAAKsnG,gBAAgB,CAAE9uF,UAAS0uF,mBAAkBlzF,WAG5E,CAAC,MAAO1I,GACLtL,KAAKkN,OAAOsT,MAAM,oFAEZxgB,KAAKinG,wBAAwBD,EAAc9B,OACpD,CACJ,CAEO,oBAAMmG,EAAenG,OAAEA,EAAM/iF,QAAEA,EAAO9f,OAAEA,EAAMoqC,OAAEA,YACpD,MAAMwgE,QAAkBjtG,KAAKkmG,gBAAgB3zE,IAAIka,EAAOpzB,iBAElD6zF,GAAkC,QAAfthG,EAAAqhG,aAAA,EAAAA,EAAW1+F,YAAI,IAAA3C,OAAA,EAAAA,EAAE66F,UAAW,GAE/C0G,EAAgB,IACfF,EAAU1+F,KACbk4F,QAAS,IACFyG,EACHhI,CAACA,GAAS,CAAE/iF,UAAS9f,kBAIvBrC,KAAKkmG,gBAAgB9lG,OAAO+sG,EAAe,CAAEnyC,IAAKvuB,EAAOpzB,kBAEpD,QAAX6hC,EAAAl7C,KAAKkN,cAAM,IAAAguC,GAAAA,EAAErqC,KAAK,uCAAuC47B,EAAOpzB,uBACnE,QC97BQ+zF,GAKT,WAAA7wG,CAAoBqJ,EAAyB0gB,GAAzBtmB,KAAO4F,QAAPA,EAAyB5F,KAAOsmB,QAAPA,EAHrCtmB,KAAQ+M,SAAqBH,KAC7B5M,KAAuBqtG,yBAAG,CAGjC,CAEM,SAAM96E,CAAOyoC,GAEhB,aADoBh7D,KAAKsmB,QAAQI,OAAO,gBAAiB,CAAEs0C,IAAKA,QAAAA,EAAOh7D,KAAK4F,WAChEu5B,QACf,CAEM,SAAM9T,CAAI9c,EAAWxK,SACxB/D,KAAKstG,iBAAiB/+F,SAChBvO,KAAKsmB,QAAQI,OAAO,gBAAiB,CAAEs0C,IAAqB,QAAhBpvD,EAAA7H,aAAA,EAAAA,EAASi3D,WAAO,IAAApvD,EAAAA,EAAA5L,KAAK4F,QAAS2I,OAAMk+C,OAAO,GAChG,CAEM,YAAM8gD,CAAOvyC,EAAazsD,GAG7B,OAFAvO,KAAKwtG,UAAUxyC,GACfh7D,KAAKstG,iBAAiB/+F,GACfvO,KAAKqrB,IAAI9c,EAAM,CAAEysD,OAC3B,CAEM,YAAM56D,CAAOmO,EAAWxK,SAC3B/D,KAAKstG,iBAAiB/+F,SAChBvO,KAAKsmB,QAAQI,OAAO,gBAAiB,CAAEs0C,IAAqB,QAAhBpvD,EAAA7H,aAAA,EAAAA,EAASi3D,WAAO,IAAApvD,EAAAA,EAAA5L,KAAK4F,QAAS2I,OAAMk+C,OAAO,GAChG,CAEM,eAAMghD,CAAUzyC,EAAazsD,GAGhC,OAFAvO,KAAKwtG,UAAUxyC,GACfh7D,KAAKstG,iBAAiB/+F,GACfvO,KAAKI,OAAOmO,EAAM,CAAEysD,OAC9B,CAEM,WAAMvuD,CAAMuuD,SACTh7D,KAAKsmB,QAAQI,OAAO,gBAAiB,CAAEs0C,IAAKA,QAAAA,EAAOh7D,KAAK4F,QAAS6G,OAAO,GACjF,CAEM,cAAMihG,CAAS1yC,GAClBh7D,KAAKwtG,UAAUxyC,SACTh7D,KAAKsmB,QAAQI,OAAO,gBAAiB,CAAEs0C,MAAKvuD,OAAO,GAC5D,CAEM,YAAMmmF,GAET,aADoB5yF,KAAKsmB,QAAQI,OAAO,kBAC5ByY,QACf,CAEM,cAAMoiE,SACHvhG,KAAKsmB,QAAQI,OAAO,gBAAiB,CAAEja,OAAO,GACvD,CAEM,SAAAusB,CAAaxtB,GAEhB,OADAxL,KAAK2tG,eAAeniG,GACbxL,KAAKg3F,aAAah3F,KAAK4F,QAAS4F,EAC1C,CAEM,YAAAwrF,CAAgBh8B,EAAaxvD,GAChCxL,KAAKwtG,UAAUxyC,GACfh7D,KAAK2tG,eAAeniG,GACpB,MAAMoiG,EAAgB5tG,KAAK+M,SAASxB,IAAIyvD,EAAKxvD,GAQ7C,OALAxL,KAAK6tG,0BACArgG,MAAK,KACFxN,KAAKsmB,QAAQI,OAAO,gBAAiB,CAAEs0C,MAAKhiC,WAAW,GAAO,IAG/D,KACH40E,GAAe,CAEtB,CAEO,6BAAMC,GACN7tG,KAAKqtG,0BAGTrtG,KAAKqtG,yBAA0B,QAEzBrtG,KAAKsmB,QAAQsf,SAAS,oBAAqBG,IAC7C/lC,KAAK+M,SAASX,QAAQ25B,EAAKi1B,IAAKj1B,EAAK,IAE5C,CAEO,SAAAynE,CAAUxyC,GACd,IAAKA,EACD,MAAM,IAAIn7D,MAAM,yBAEpB,IAAKm6C,GAASghB,GACV,MAAM,IAAIn7D,MAAM,yBAEvB,CACO,gBAAAytG,CAAiB/+F,GACrB,IAAKA,EACD,MAAM,IAAI1O,MAAM,0BAEpB,IAAKwwB,GAAS9hB,GACV,MAAM,IAAI1O,MAAM,2BAEvB,CAEO,cAAA8tG,CAAeniG,GACnB,IAAK0nB,GAAW1nB,GACZ,MAAM,IAAI3L,MAAM,6BAEvB,QC3GQiuG,GAET,WAAAvxG,CAAoByqC,EAA4B1gB,GAA5BtmB,KAAUgnC,WAAVA,EAA4BhnC,KAAOsmB,QAAPA,CAC/C,CAEM,SAAMiM,CAAIlwB,GAEb,aADqBrC,KAAK0mB,OAAM,cAAsE,CAAErkB,YAC1F88B,SAAS4uE,OAC1B,CAEM,SAAM1iF,CAAI2iF,GACbhuG,KAAKiuG,mBAAmBD,SAClBhuG,KAAK0mB,OAA8D,aAAAsnF,EAC5E,CAEM,YAAMroE,CAAOziB,EAAa5lB,GAC7B,IAAK08C,GAAS92B,GACV,MAAM,IAAIrjB,MAAM,0BAEpB,IAAKm6C,GAAS18C,GACV,MAAM,IAAIuC,MAAM,iCAEdG,KAAK0mB,OAAiE,gBAAA,CAAExD,MAAK5lB,QACtF,CAEO,MAAAopB,CAAU8N,EAAmBjmB,GACjC,OAAOvO,KAAKsmB,QAAQI,OAAU1mB,KAAKgnC,WAAY,CAAExS,UAASuR,KAAMx3B,GACnE,CAEO,kBAAA0/F,CAAmBD,GACvB,IAAKA,EACD,MAAM,IAAInuG,MAAM,4BAEpB,IAAKwwB,GAAS29E,GACV,MAAM,IAAInuG,MAAM,6BAEvB,QCxCQquG,GAST,WAAA3xG,CAA6BiL,GAAAxH,KAAMwH,OAANA,EAPZxH,KAAemuG,gBAAG,SAElBnuG,KAAA4mE,OAAmG,CAChHwnC,cAAe,CAAE9wG,KAAM,gBAAiBsY,OAAQ5V,KAAKquG,oBAAoBv4F,KAAK9V,OAC9EsuG,YAAa,CAAEhxG,KAAM,cAAesY,OAAQ5V,KAAKuuG,kBAAkBz4F,KAAK9V,OAGpB,CAEjD,KAAAo+D,CAAMlmB,GAELxpC,GAAMC,WAMV3O,KAAKk4C,KAAOA,EAEZl4C,KAAKwuG,0BAELxuG,KAAKyuG,kBACR,CAEO,uBAAAD,GACJppG,OAAOE,iBAAiBtF,KAAKmuG,iBAAkBh2F,IAC3C,MAAM5J,EAAQ4J,EAAsBu2F,OAEpC,IAAKngG,IAASA,EAAKogG,OACf,OAGJ,MAAMC,EAAsBrgG,EAAKogG,OAAOx2F,MAElC02F,EAAe7uG,KAAK4mE,OAAOgoC,GAE5BC,GAILA,EAAaj5F,OAAOrH,EAAKogG,OAAOrhG,QAAQ,GAG/C,CAEO,eAAAmhG,GACJzuG,KAAKkI,KAAK,QACb,CAEO,iBAAAqmG,GACCvuG,KAAKwH,OAAOo1F,UAKjB58F,KAAKkI,KAAK,sBAAuB,CAAEgwC,KAAMl4C,KAAKk4C,OAJ1Cl4C,KAAKkI,KAAK,sBAAuB,CAAEoD,MAAO,0GAKjD,CAEO,mBAAA+iG,GACJruG,KAAKyuG,iBACR,CAEO,IAAAvmG,CAAKokC,EAAmBh/B,GAC5B,MAAMzD,EAAU,CAAE8kG,OAAQ,CAAEx2F,MAAOm0B,EAAWh/B,YAExC6K,EAAQ,IAAI22F,YAAY9uG,KAAKmuG,gBAAiB,CAAEO,OAAQ7kG,IAE9DzE,OAAOm4F,cAAcplF,EACxB,ECpDL,MAAM42F,GAA4B,UChBlC,WAAAxyG,GAGWyD,KAAWgvG,aAAG,EACdhvG,KAAO6lE,QAAkB,GACzB7lE,KAAA2N,OAAiC,OACjC3N,KAAA+F,QAAqF,MAsB/F,CApBU,IAAA/B,CAAKwD,GACRxH,KAAKgvG,aAAc,EACnBhvG,KAAKivG,QAAQznG,GACbxH,KAAKkP,QAAU,IAAIpJ,SAAQ,CAACC,EAAS4H,KACjC3N,KAAK+F,QAAUA,EACf/F,KAAK2N,OAASA,CAAM,GAE3B,CAEM,OAAAshG,CAAQznG,GACXxH,KAAK6lE,QAAQ3lE,KAAK,CAAE0mB,KAAM,IAAIpqB,KAAQgL,UACzC,CAEM,IAAAovC,CAAKs4D,GACRlvG,KAAK+F,QAAQmpG,EAChB,CAEM,KAAA5jG,CAAM5G,GACT1E,KAAK2N,OAAOjJ,EACf,GDTC0kD,GAAUthD,MAAO/D,IACnB,IAAIorG,GAAW,EACVJ,GAASC,cACVG,GAAW,EACXJ,GAAS/qG,KAAKD,IAIlB,MAAM4B,EAAwD,oBAAXP,QAA0BA,OAAOO,SACpF,GAAIA,IACKwpG,EAED,OADAJ,GAASE,QAAQlrG,GACVgrG,GAAS7/F,QAGxB,MAAMggG,QAAUE,GAAYrrG,EAAS4B,GAErC,OADAopG,GAAShpG,QAAQmpG,GACVA,CAAC,EAGNE,GAActnG,MAAO/D,EAAkC4B,KACzD,MACM+zD,EAAiBhrD,GAAM44D,oBAMvB/uB,EAAalC,GADnBtyC,EAAUA,GAAW,IAIrB,IAAI42D,EACAxd,EACA4J,EACAsoD,EACAC,EACAC,EAPJxrG,EAAQmxC,QAAUnxC,EAAQmxC,SAAW,CAAA,EAQrC,MAAMs6D,EAA2B,IAAItB,GAAiB31D,GAgLtD,SAASk3D,EAAarpF,EAAoBlZ,EAAkC1F,GACxE,MAAMkoG,EAAYxiG,EAAO4S,UAAUsG,GAEnC,GAAI5e,GAAUA,EAAO0F,OAAQ,CACzB,MAAMyiG,EAAenoG,EAAO0F,OACxByiG,EAAatkG,SACbqkG,EAAUzpF,aAAa0pF,EAAatkG,SAEpCskG,EAAat8D,SACbq8D,EAAU3pF,aAAa4pF,EAAat8D,QAM3C,CAED,OAAOq8D,CACV,CAED,MAAMt7D,EAA+B,CAEjC+B,KAAM,CACF,CAAE74C,KAAM,UAAW+vB,OAhM3B,SAAuBuiF,GACnB,GAAIr3D,EAAW+C,QAAS,CAEpB,MAAMu0D,EAAgBJ,EAAa,UAAWG,EAAK1iG,OAAQqrC,EAAW+C,SAgBtE,OAdAyL,EAAW0mC,GACPmiB,EAAKv3D,IACLw3D,GACA,IACWl1C,IAEX,IACW00C,IAEX,IACWC,GAEX51C,GACJo2C,EAAS/oD,GACFA,CACV,CACJ,GA4KO,CAAEzpD,KAAM,aAAc+vB,OA1K9B,SAA0BuiF,SACtB,GAAIr3D,EAAWlB,YACPgiB,GAAeC,+BAAiCD,GAAeC,8BAA8Bs2C,EAAKroG,YAAa,CAE/G,MAAMwoG,EAAiBN,EAAa,WAAYG,EAAK1iG,OAAQqrC,EAAWlB,YAqBxE,OAnBA8F,EAAY,IAAIkc,GAAe,CAC3B9xD,WAAYqoG,EAAKroG,WACjB2uC,SAAU05D,EAAK15D,SACfmC,IAAKu3D,EAAKv3D,IACVnrC,OAAQ6iG,EACRv2C,SAAU,OACVK,qBAAqB,EACrB1R,uBAAwB,OACxBmD,iBAAkB,KAClBhQ,QAASyL,EACTgnB,iBAAkB,IACPpT,EAEXrS,KAAM/P,EAAWlB,WAAWiR,KAC5BE,aAAcjQ,EAAWlB,WAAWmR,aACpClgC,WAAkC,QAAtB1c,EAAAjG,eAAAA,EAAUyhD,oBAAY,IAAAx7C,OAAA,EAAAA,EAAE0c,WACpCoxC,mBACDzzD,IACH6pG,EAAS3yD,GACFA,CACV,CAER,GA+IO,CAAE7/C,KAAM,aAAc+vB,OA7I9B,SAA0BuiF,GACtB,IAAKr3D,EAAW0tB,WACZ,OAGJ,MAAM/4D,EAASuiG,EAAa,aAAcG,EAAK1iG,OAAQqrC,EAAW0tB,YAYlE,OATAtL,EAAcmL,GAAkB,CAC5BztB,IAAKu3D,EAAKv3D,IACViD,QAASyL,EACT75C,SACAmqC,WAAY8F,EACZmL,KAAM/P,EAAW0tB,WAAW3d,KAC5BoR,mBAEJo2C,EAASn1C,GACFA,CACV,GA4HO,CAAEr9D,KAAM,UAAW+vB,OA1H3B,SAAuBuiF,SACnB,IAAKr3D,EAAWo2C,QACZ,OAGJ,MAAMzhF,EAASuiG,EAAa,UAAWG,EAAK1iG,OAAQqrC,EAAWo2C,SACzDqhB,EAAgBz3D,EAAWo2C,QAC3BshB,EAAM7a,GAAe,CACvB/8C,IAAKu3D,EAAKv3D,IACV4tB,WAAYtL,EACZw1B,eAAgB,IAAMhzC,EACtBjwC,SACAo7C,KAAM0nD,EAAc1nD,KACpBknC,8BAAuB5jF,EAAAokG,EAAcxgB,sCACrC91B,mBAGJ,OADAo2C,EAASG,GACFA,CACV,GAyGO,CAAE3yG,KAAM,WAAY+vB,OAvG5B,SAAwBuiF,GACpB,IAAKr3D,EAAW41B,SACZ,OAGJ,IAAKyhC,EAAK15D,SAEN,OAIJ,MAAMhpC,EAASuiG,EAAa,WAAYG,EAAK1iG,OAAQqrC,EAAW41B,UAKhE,OAHAmhC,EAAYnhC,GAASyhC,EAAK15D,SAAU05D,EAAKv3D,KAAK,IAAM0O,GAAU75C,GAE9D4iG,EAASR,GACFA,CACV,GAuFO,CAAEhyG,KAAM,UAAW+vB,OArF3B,SAAuBuiF,GACnB,MAAMM,EEnLR,SAAkB73D,GACpB,MAAMyjD,EAAU,IAAIF,GAAYvjD,GAEhC,MAAO,CACHzS,SAAUk2D,EAAQl2D,SAAS9vB,KAAKgmF,GAChCj4D,WAAYi4D,EAAQj4D,WAAW/tB,KAAKgmF,GACpCK,cAAeL,EAAQK,cAAcrmF,KAAKgmF,GAC1CM,aAAcN,EAAQM,aAAatmF,KAAKgmF,GAExCj5E,MAAO,IAAM/c,QAAQC,UAE7B,CFwK2B+1F,CAAQ8T,EAAKv3D,KAGhC,OADAy3D,EAASI,GACFA,CACV,GAiFO,CAAE5yG,KAAM,WAAY+vB,OAjE5B,SAA2BuiF,GACvB,GAAIr3D,EAAWqvB,SAAU,CACrB,MAAMuoC,EAAiBV,EAAa,WAAYG,EAAK1iG,OAAQqrC,EAAWqvB,UAIxE,OAFAynC,EAAY,IAAI/Z,GAAesa,EAAKv3D,IAAK83D,GACzCL,EAAST,GACFA,CACV,CACJ,GA0DO,CAAE/xG,KAAM,QAAS+vB,OA7CzB,SAAqBuiF,WACjB,MAAMhqG,EAA0D,QAAhDs1C,EAAuB,QAAvBtvC,EAAA7H,EAAQsO,mBAAe,IAAAzG,EAAAA,EAAAjG,eAAAA,EAAU0T,uBAAe,IAAA6hC,EAAAA,EAAI00D,EAAKtpF,QAAQtd,SAASqJ,YAI1F,OAHAk9F,EAAS,IAAInC,GAAMxnG,EAASgqG,EAAKtpF,SAEjCwpF,EAASP,GACFA,CACV,GAwCO,CAAEjyG,KAAM,UAAW+vB,OAjF3B,SAAuBuiF,GACnB,MAAMQ,EAAa,IAAInK,GAAQ2J,EAAKv3D,IAAK0O,EAAU6oD,EAAK1iG,OAAO4S,UAAU,WAAY/b,EAASwrG,EAAQ50C,GAGtG,OADAm1C,EAASM,GACFA,CACV,GA6EO,CAAE9yG,KAAM,gBAAiB+vB,OA3EjC,SAA6BuiF,GACzB,MAAMS,EAAmB,IAAIxS,GAAc+R,EAAKtpF,QAASspF,EAAK1iG,QAAQ0wF,QAGtE,OADAkS,EAASO,GACFA,CACV,GAuEO,CAAE/yG,KAAM,SAAU+vB,OA3D1B,SAAsBuiF,GAClB,IAAKA,EAAK15D,SAEN,OAEJ,MAAMo6D,EGtNE,SAAQp6D,EAAyC5vB,GAC7D,MAAMiqF,EAAS,IAAIrM,GAAWhuD,EAAU5vB,GAExC,MAAO,CACH8pC,KAAMmgD,EAAOngD,KAAKt6C,KAAKy6F,GACvBlM,WAAYkM,EAAOlM,WAAWvuF,KAAKy6F,GACnCjM,OAAQiM,EAAOjM,OAAOxuF,KAAKy6F,GAC3B9wC,UAAW8wC,EAAO9wC,UAAU3pD,KAAKy6F,GACjC1tF,MAAO,IAAM/c,QAAQC,UAE7B,CH4M0BwqG,CAAOX,EAAK15D,SAAU05D,EAAKtpF,SAG7C,OADAwpF,EAASQ,GACFA,CACV,GAmDO,CAAEhzG,KAAM,UAAW+vB,OAzC3B,SAAuBuiF,GACnB,MAAM3pG,EIrOE,SAAQoyC,EAA+BrR,GACnD,MAAM+mE,EAAU,IAAID,GAAQ9mE,EAAYqR,GAExC,MAAO,CACH9lB,IAAKw7E,EAAQx7E,IAAIzc,KAAKi4F,GACtBpoE,OAAQooE,EAAQpoE,OAAO7vB,KAAKi4F,GAC5B1iF,IAAK0iF,EAAQ1iF,IAAIvV,KAAKi4F,GACtBlrF,MAAO,IAAM/c,QAAQC,UAE7B,CJ4NoBgoG,CAAQ6B,EAAKtpF,QA1LF,kBA6LvB,OADAwpF,EAAS7pG,GACFA,CACV,IAuCG+hB,WAEA6wB,WAAaX,IAETA,EAAK1wC,OAAO6vC,WAAakB,EAAWlB,WACpCa,EAAK1wC,OAAO8zC,QAAU/C,EAAW+C,QACjCpD,EAAK1wC,OAAOy+D,WAAa1tB,EAAW0tB,WACpC/tB,EAAK1wC,OAAOmnF,QAAUp2C,EAAWo2C,QACjCz2C,EAAK1wC,OAAO2mE,SAAW51B,EAAW41B,SAClCj2B,EAAK1wC,OAAOogE,SAAWrvB,EAAWqvB,QAAQ,GAI5C4oC,EAAoB,GAQ1B,SAASV,EAAS5yF,GACdszF,EAAWtwG,KAAKgd,EACnB,CATqB,oBAAX9X,SACDA,OAAeqrG,iBAChBrrG,OAAeqrG,eAAiB,IAEpCrrG,OAAeqrG,eAAevwG,KAAKswG,IAOxC,MAAME,QAAiBC,GAAY5sG,EAASqwC,GAS5C,OANI91C,MAAMC,QAAQwF,aAAA,EAAAA,EAAS6sG,YAAc7sG,EAAQ6sG,UAAUlzG,cACjDoI,QAAQof,IAAInhB,EAAQ6sG,UAAUxpG,KAAK6Z,GAAQA,EAAIyvF,EAAS3sG,MAGlEyrG,EAAyBpxC,MAAMsyC,GAExBA,CAAO,YAGlBtnD,GAAQnR,YAAe04D,GAAoB3oF,QAC3CohC,GAAQphC,QAAUA,GAClBohC,GAAQynD,MAAQ9B,GKxThB,IAAI+B,GAAeC,GACfC,IAAoB,EACxB,GAAsB,oBAAX5rG,OAAwB,CAC/B,MAAMowC,EAAcpwC,OAEdivC,EAAqC,QAAzBzoC,GAAA4pC,EAAYnB,iBAAa,IAAAzoC,GAAAA,GAAA4pC,EAAY7vC,SACnD0uC,GAAaA,EAAU48D,eACvBH,GAAwC,WAAzBt7D,EAAY07D,iBAAa,IAAAh2D,GAAAA,GAAA1F,EAAY27D,KAEpDH,IAAoB,GAGpBA,KACAx7D,EAAY27D,KAAOL,GACnBt7D,EAAY07D,UAAYJ,WAIrBt7D,EAAY47D,iBACZ57D,EAAY67D,QACtB,QAEAP,GAAqBnkG,QAAUmkG,GAEjBA","x_google_ignoreList":[22,33]}
1
+ {"version":3,"file":"desktop.umd.min.js","sources":["../../core/dist/core.es.js","../src/activity/entities/activityEntity.ts","../src/activity/helpers/util.ts","../src/activity/entities/activityType.ts","../src/activity/entities/windowType.ts","../src/activity/contracts/entityEvent.ts","../src/activity/core/activityAGM.ts","../src/activity/entities/attachedActivityDescriptor.ts","../src/activity/helpers/promiseExtensions.ts","../src/activity/entities/activity.ts","../src/activity/helpers/logger.ts","../src/activity/entities/activityWindow.ts","../src/activity/contracts/activityStatus.ts","../src/activity/bridges/gw3Bridge.ts","../src/activity/API/activityMyAPI.ts","../src/activity/helpers/readyMarker.ts","../src/activity/helpers/entityObservableCollection.ts","../src/activity/core/activityManager.ts","../src/activity/API/activityManagementAPI.ts","../src/activity/API/activityAPI.ts","../src/activity/activityModule.ts","../src/app-manager/const/agm-names.ts","../../../node_modules/callback-registry/lib/index.js","../src/app-manager/helper.ts","../src/app-manager/application.ts","../src/app-manager/instance.ts","../src/app-manager/app-manager.ts","../src/app-manager/entitlements.ts","../src/app-manager/in-memory.ts","../src/app-manager/main.ts","../src/app-manager/snapshot.ts","../src/app-manager/data-subscription.ts","../src/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../src/windows/jumpList/manager.ts","../src/windows/store.ts","../src/windows/jumpList/actions.ts","../src/windows/jumpList/categories.ts","../src/windows/jumpList/main.ts","../src/windows/window.ts","../src/windows/environment/helpers.ts","../src/windows/environment/gd/executor.ts","../src/windows/environment/gd/gd.ts","../src/windows/environment/detector.ts","../src/windows/group.ts","../src/windows/groups.ts","../src/windows/main.ts","../src/layouts/store.ts","../src/layouts/contextProvider.ts","../src/layouts/transform.ts","../src/layouts/layout.ts","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/layouts/main.ts","../src/displays/displayManager.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/channels.ts","../src/channels/main.ts","../src/hotkeys/hotkeys.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../src/intents/constants.ts","../src/intents/common.ts","../src/intents/helpers.ts","../src/intents/intents.ts","../src/prefs/index.ts","../src/cookies/index.ts","../src/eventsDispatcher.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\n STRING: 1,\n NUMBER: 2,\n TIMESTAMP: 3,\n OBJECT: 4\n};\n\nfunction getMetricTypeByValue(metric) {\n if (metric.type === MetricTypes.TIMESTAMP) {\n return \"timestamp\";\n }\n else if (metric.type === MetricTypes.NUMBER) {\n return \"number\";\n }\n else if (metric.type === MetricTypes.STRING) {\n return \"string\";\n }\n else if (metric.type === MetricTypes.OBJECT) {\n return \"object\";\n }\n return \"unknown\";\n}\nfunction getTypeByValue(value) {\n if (value.constructor === Date) {\n return \"timestamp\";\n }\n else if (typeof value === \"number\") {\n return \"number\";\n }\n else if (typeof value === \"string\") {\n return \"string\";\n }\n else if (typeof value === \"object\") {\n return \"object\";\n }\n else {\n return \"string\";\n }\n}\nfunction serializeMetric(metric) {\n const serializedMetrics = {};\n const type = getMetricTypeByValue(metric);\n if (type === \"object\") {\n const values = Object.keys(metric.value).reduce((memo, key) => {\n const innerType = getTypeByValue(metric.value[key]);\n if (innerType === \"object\") {\n const composite = defineNestedComposite(metric.value[key]);\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite,\n };\n }\n else {\n memo[key] = {\n type: innerType,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n serializedMetrics.composite = values;\n }\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\n serializedMetrics.type = type;\n serializedMetrics.description = metric.description;\n serializedMetrics.context = {};\n return serializedMetrics;\n}\nfunction defineNestedComposite(values) {\n return Object.keys(values).reduce((memo, key) => {\n const type = getTypeByValue(values[key]);\n if (type === \"object\") {\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite: defineNestedComposite(values[key]),\n };\n }\n else {\n memo[key] = {\n type,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n}\nfunction normalizeMetricName(name) {\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\n return \"/\" + name;\n }\n else {\n return name;\n }\n}\nfunction getMetricValueByType(metric) {\n const type = getMetricTypeByValue(metric);\n if (type === \"timestamp\") {\n return Date.now();\n }\n else {\n return publishNestedComposite(metric.value);\n }\n}\nfunction publishNestedComposite(values) {\n if (typeof values !== \"object\") {\n return values;\n }\n return Object.keys(values).reduce((memo, key) => {\n const value = values[key];\n if (typeof value === \"object\" && value.constructor !== Date) {\n memo[key] = publishNestedComposite(value);\n }\n else if (value.constructor === Date) {\n memo[key] = new Date(value).getTime();\n }\n else if (value.constructor === Boolean) {\n memo[key] = value.toString();\n }\n else {\n memo[key] = value;\n }\n return memo;\n }, {});\n}\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\n }, []);\n}\nfunction getHighestState(arr) {\n return arr.sort((a, b) => {\n if (!a.state) {\n return 1;\n }\n if (!b.state) {\n return -1;\n }\n return b.state - a.state;\n })[0];\n}\nfunction aggregateDescription(arr) {\n let msg = \"\";\n arr.forEach((m, idx, a) => {\n const path = m.path.join(\".\");\n if (idx === a.length - 1) {\n msg += path + \".\" + m.name + \": \" + m.description;\n }\n else {\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\n }\n });\n if (msg.length > 100) {\n return msg.slice(0, 100) + \"...\";\n }\n else {\n return msg;\n }\n}\nfunction composeMsgForRootStateMetric(system) {\n const aggregatedState = system.root.getAggregateState();\n const merged = flatten(aggregatedState);\n const highestState = getHighestState(merged);\n const aggregateDesc = aggregateDescription(merged);\n return {\n description: aggregateDesc,\n value: highestState.state,\n };\n}\n\nfunction gw3 (connection, config) {\n if (!connection || typeof connection !== \"object\") {\n throw new Error(\"Connection is required parameter\");\n }\n let joinPromise;\n let session;\n const init = (repo) => {\n let resolveReadyPromise;\n joinPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n session = connection.domain(\"metrics\");\n session.onJoined((reconnect) => {\n if (!reconnect && resolveReadyPromise) {\n resolveReadyPromise();\n resolveReadyPromise = undefined;\n }\n const rootStateMetric = {\n name: \"/State\",\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const defineRootMetricsMsg = {\n type: \"define\",\n metrics: [rootStateMetric],\n };\n session.send(defineRootMetricsMsg);\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.send(createMetricsMsg);\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(shadowedUpdateMetric);\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(rootMetric);\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.send(createMetricsMsg);\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg);\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n this.ws.onerror = (err) => {\n let reason = \"\";\n try {\n reason = JSON.stringify(err);\n }\n catch (error) {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _communicationId;\n publicWindowId;\n selfAssignedWindowId;\n iAmConnected = false;\n parentReady = false;\n rejected = false;\n parentPingResolve;\n parentPingInterval;\n connectionResolve;\n extConnectionResolve;\n extConnectionReject;\n connectionReject;\n port;\n myClientId;\n children = [];\n extContentAvailable = false;\n extContentConnecting = false;\n extContentConnected = false;\n parentWindowId;\n parentInExtMode = false;\n webNamespace = \"g42_core_web\";\n parent;\n parentType;\n parentPingTimeout = 5000;\n connectionRequestTimeout = 7000;\n defaultTargetString = \"*\";\n registry = CallbackRegistryFactory();\n messages = {\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\n parentReady: {\n name: \"parentReady\", handle: () => {\n }\n },\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\n clientUnload: { name: \"clientUnload\", handle: this.handleClientUnload.bind(this) },\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\n };\n constructor(settings, logger, identity) {\n this.settings = settings;\n this.logger = logger;\n this.identity = identity;\n this.extContentAvailable = !!window.glue42ext;\n this.setUpMessageListener();\n this.setUpUnload();\n this.setupPlatformUnloadListener();\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\n }\n manualSetReadyState() {\n this.iAmConnected = true;\n this.parentReady = true;\n }\n get transportWindowId() {\n return this.publicWindowId;\n }\n get communicationId() {\n return this._communicationId;\n }\n async sendObject(msg) {\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: msg }, this.defaultTargetString);\n }\n if (!this.port) {\n throw new Error(\"Cannot send message, because the port was not opened yet\");\n }\n this.port.postMessage(msg);\n }\n get isObjectBasedTransport() {\n return true;\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n send() {\n return Promise.reject(\"not supported\");\n }\n onConnectedChanged(callback) {\n return this.registry.add(\"onConnectedChanged\", callback);\n }\n async open() {\n this.logger.debug(\"opening a connection to the web platform gateway.\");\n await this.connect();\n this.notifyStatusChanged(true);\n }\n close() {\n const message = {\n glue42core: {\n type: this.messages.gatewayDisconnect.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.port?.postMessage(message);\n this.parentReady = false;\n this.notifyStatusChanged(false, \"manual reconnection\");\n return Promise.resolve();\n }\n name() {\n return \"web-platform\";\n }\n async reconnect() {\n await this.close();\n return Promise.resolve();\n }\n initiateInternalConnection() {\n return new Promise((resolve, reject) => {\n this.logger.debug(\"opening an internal web platform connection\");\n this.port = this.settings.port;\n if (this.iAmConnected) {\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\n return;\n }\n this.port.onmessage = (event) => {\n if (this.iAmConnected && !event.data?.glue42core) {\n this.registry.execute(\"onMessage\", event.data);\n return;\n }\n const data = event.data?.glue42core;\n if (!data) {\n return;\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\n this.publicWindowId = this.settings.windowId;\n if (this.identity && this.publicWindowId) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.publicWindowId;\n }\n resolve();\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\n reject(data.error);\n }\n };\n this.port.postMessage({\n glue42core: {\n type: this.messages.gatewayInternalConnect.name\n }\n });\n });\n }\n initiateRemoteConnection(target) {\n return PromisePlus((resolve, reject) => {\n this.connectionResolve = resolve;\n this.connectionReject = reject;\n this.myClientId = this.myClientId ?? nanoid(10);\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\n const request = {\n glue42core: {\n type: this.messages.connectionRequest.name,\n clientId: this.myClientId,\n clientType: \"child\",\n bridgeInstanceId,\n selfAssignedWindowId: this.selfAssignedWindowId\n }\n };\n this.logger.debug(\"sending connection request\");\n if (this.extContentConnecting) {\n request.glue42core.clientType = \"child\";\n request.glue42core.bridgeInstanceId = this.myClientId;\n request.glue42core.parentWindowId = this.parentWindowId;\n return window.postMessage(request, this.defaultTargetString);\n }\n if (!target) {\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\n }\n target.postMessage(request, this.defaultTargetString);\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\n }\n async isParentCheckSuccess(parentCheck) {\n try {\n await parentCheck;\n return { success: true };\n }\n catch (error) {\n return { success: false };\n }\n }\n setUpMessageListener() {\n if (this.settings.port) {\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"message\", (event) => {\n const data = event.data?.glue42core;\n if (!data || this.rejected) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n if (!this.checkMessageTypeValid(data.type)) {\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\n return;\n }\n const messageType = data.type;\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\n this.messages[messageType].handle(event);\n });\n }\n setUpUnload() {\n if (this.settings.port) {\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"beforeunload\", () => {\n if (this.extContentConnected) {\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.parent) {\n this.parent.postMessage(message, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n });\n }\n handlePlatformReady(event) {\n this.logger.debug(\"the web platform gave the ready signal\");\n this.parentReady = true;\n if (this.parentPingResolve) {\n this.parentPingResolve();\n delete this.parentPingResolve;\n }\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n this.parent = event.source;\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\n }\n handleConnectionAccepted(event) {\n const data = event.data?.glue42core;\n if (this.myClientId === data.clientId) {\n return this.handleAcceptanceOfMyRequest(data);\n }\n return this.handleAcceptanceOfGrandChildRequest(data, event);\n }\n handleAcceptanceOfMyRequest(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\n this.isPreferredActivated = data.isPreferredActivated;\n if (this.extContentConnecting) {\n return this.processExtContentConnection(data);\n }\n if (!data.port) {\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\n return;\n }\n this.publicWindowId = this.getMyWindowId();\n if (this.identity) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n this._communicationId = data.communicationId;\n this.port = data.port;\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\n }\n processExtContentConnection(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\n this.extContentConnecting = false;\n this.extContentConnected = true;\n this.publicWindowId = this.parentWindowId || this.myClientId;\n if (this.extContentConnecting && this.identity) {\n this.identity.windowId = this.publicWindowId;\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n window.addEventListener(\"message\", (event) => {\n const extData = event.data?.glue42ExtInc;\n if (!extData) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n this.registry.execute(\"onMessage\", extData);\n });\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n }\n handleAcceptanceOfGrandChildRequest(data, event) {\n if (this.extContentConnecting || this.extContentConnected) {\n this.logger.debug(\"cannot process acceptance of a grandchild, because I am connected to a content script\");\n return;\n }\n this.logger.debug(`handling a connection accepted signal targeted at a grandchild: ${data.clientId}`);\n const child = this.children.find((c) => c.grandChildId === data.clientId);\n if (!child) {\n this.logger.error(`cannot handle connection accepted for grandchild: ${data.clientId}, because there is no grandchild with this id`);\n return;\n }\n child.connected = true;\n this.logger.debug(`the grandchild connection for ${data.clientId} is set up, forwarding the success message and the gateway port`);\n data.parentWindowId = this.publicWindowId;\n child.source.postMessage(event.data, child.origin, [data.port]);\n return;\n }\n handleConnectionRejected() {\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\n if (this.connectionReject) {\n this.connectionReject(\"The platform connection was rejected. Most likely because this window was not created by a glue API call\");\n delete this.connectionReject;\n }\n }\n handleConnectionRequest(event) {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n const source = event.source;\n const data = event.data.glue42core;\n if (!data.clientType || data.clientType !== \"grandChild\") {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source was not opened by a glue API call\");\n }\n if (!data.clientId) {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source did not provide a valid id\");\n }\n if (!this.parent) {\n return this.rejectConnectionRequest(source, event.origin, \"Cannot forward the connection request, because no direct connection to the platform was found\");\n }\n this.logger.debug(`handling a connection request for a grandchild: ${data.clientId}`);\n this.children.push({ grandChildId: data.clientId, source, connected: false, origin: event.origin });\n this.logger.debug(`grandchild: ${data.clientId} is prepared, forwarding connection request to the platform`);\n this.parent.postMessage(event.data, this.defaultTargetString);\n }\n handleParentPing(event) {\n if (!this.parentReady) {\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\n return;\n }\n if (!this.iAmConnected) {\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.parentReady.name\n }\n };\n if (this.extContentConnected) {\n message.glue42core.extMode = { windowId: this.myClientId };\n }\n const source = event.source;\n this.logger.debug(\"responding to a parent ping with a ready message\");\n source.postMessage(message, event.origin);\n }\n setupPlatformUnloadListener() {\n this.onMessage((msg) => {\n if (msg.type === \"platformUnload\") {\n this.logger.debug(\"detected a web platform unload\");\n this.parentReady = false;\n this.notifyStatusChanged(false, \"Gateway unloaded\");\n }\n });\n }\n handleManualUnload() {\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: message }, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n }\n handleClientUnload(event) {\n const data = event.data.glue42core;\n const clientId = data?.data.clientId;\n if (!clientId) {\n this.logger.warn(\"cannot process grand child unload, because the provided id was not valid\");\n return;\n }\n const foundChild = this.children.find((child) => child.grandChildId === clientId);\n if (!foundChild) {\n this.logger.warn(\"cannot process grand child unload, because this client is unaware of this grandchild\");\n return;\n }\n this.logger.debug(`handling grandchild unload for id: ${clientId}`);\n this.children = this.children.filter((child) => child.grandChildId !== clientId);\n }\n handlePlatformPing() {\n return;\n }\n notifyStatusChanged(status, reason) {\n this.iAmConnected = status;\n this.registry.execute(\"onConnectedChanged\", status, reason);\n }\n checkMessageTypeValid(typeToValidate) {\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\n }\n rejectConnectionRequest(source, origin, reason) {\n this.rejected = true;\n this.logger.error(reason);\n const rejection = {\n glue42core: {\n type: this.messages.connectionRejected.name\n }\n };\n source.postMessage(rejection, origin);\n }\n requestConnectionPermissionFromExt() {\n return this.waitForContentScript()\n .then(() => PromisePlus((resolve, reject) => {\n this.extConnectionResolve = resolve;\n this.extConnectionReject = reject;\n const message = {\n glue42core: {\n type: \"extSetupRequest\"\n }\n };\n this.logger.debug(\"permission request to the extension content script was sent\");\n window.postMessage(message, this.defaultTargetString);\n }, this.parentPingTimeout, \"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection timed out\"));\n }\n handleExtConnectionResponse(event) {\n const data = event.data?.glue42core;\n if (!data.approved) {\n return this.extConnectionReject ? this.extConnectionReject(\"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection was rejected\") : undefined;\n }\n if (this.extConnectionResolve) {\n this.extConnectionResolve();\n delete this.extConnectionResolve;\n }\n this.extContentConnecting = true;\n this.parentType = \"extension\";\n this.logger.debug(\"The extension connection was approved, proceeding.\");\n }\n handleExtSetupRequest() {\n return;\n }\n handleGatewayDisconnect() {\n return;\n }\n handleGatewayInternalConnect() {\n return;\n }\n waitForContentScript() {\n const contentReady = !!window.glue42ext?.content;\n if (contentReady) {\n return Promise.resolve();\n }\n return PromisePlus((resolve) => {\n window.addEventListener(\"Glue42EXTReady\", () => {\n resolve();\n });\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\n }\n async connect() {\n if (this.settings.port) {\n await this.initiateInternalConnection();\n this.logger.debug(\"internal web platform connection completed\");\n return;\n }\n this.logger.debug(\"opening a client web platform connection\");\n await this.findParent();\n await this.initiateRemoteConnection(this.parent);\n this.logger.debug(\"the client is connected\");\n }\n async findParent() {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const myInsideParents = this.getPossibleParentsInWindow(window);\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\n if (!uniqueParents.size && !this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n if (!uniqueParents.size && this.extContentAvailable) {\n await this.requestConnectionPermissionFromExt();\n return;\n }\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\n if (defaultParentCheck.success) {\n this.logger.debug(\"The default parent was found!\");\n return;\n }\n if (!this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n await this.requestConnectionPermissionFromExt();\n }\n getPossibleParentsInWindow(currentWindow) {\n return (!currentWindow || currentWindow === currentWindow.top) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\n }\n getPossibleParentsOutsideWindow(opener, current) {\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\n }\n confirmParent(targets) {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const parentCheck = PromisePlus((resolve) => {\n this.parentPingResolve = resolve;\n const message = {\n glue42core: {\n type: this.messages.platformPing.name\n }\n };\n this.parentPingInterval = setInterval(() => {\n targets.forEach((target) => {\n target.postMessage(message, this.defaultTargetString);\n });\n }, 1000);\n }, this.parentPingTimeout, connectionNotPossibleMsg);\n parentCheck.catch(() => {\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n });\n return parentCheck;\n }\n getMyWindowId() {\n if (this.parentType === \"workspace\") {\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\n }\n if (window !== window.top) {\n return;\n }\n if (window.name?.includes(\"g42\")) {\n return window.name;\n }\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\n return this.selfAssignedWindowId;\n }\n}\n\nconst waitForInvocations = (invocations, callback) => {\n let left = invocations;\n return () => {\n left--;\n if (left === 0) {\n callback();\n }\n };\n};\n\nclass AsyncSequelizer {\n minSequenceInterval;\n queue = [];\n isExecutingQueue = false;\n constructor(minSequenceInterval = 0) {\n this.minSequenceInterval = minSequenceInterval;\n }\n enqueue(action) {\n return new Promise((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n async executeQueue() {\n if (this.isExecutingQueue) {\n return;\n }\n this.isExecutingQueue = true;\n while (this.queue.length) {\n const operation = this.queue.shift();\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n }\n catch (error) {\n operation.reject(error);\n }\n await this.intervalBreak();\n }\n this.isExecutingQueue = false;\n }\n intervalBreak() {\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\n }\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\n if (domain == null) {\n domain = \"global\";\n }\n successMessages = successMessages ?? [\"success\"];\n errorMessages = errorMessages ?? [\"error\"];\n let isJoined = domain === \"global\";\n let tryReconnecting = false;\n let _latestOptions;\n let _connectionOn = false;\n const callbacks = CallbackRegistryFactory();\n connection.disconnected(handleConnectionDisconnected);\n connection.loggedIn(handleConnectionLoggedIn);\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\n if (successMessages) {\n successMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleSuccessMessage(msg));\n });\n }\n if (errorMessages) {\n errorMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleErrorMessage(msg));\n });\n }\n const requestsMap = {};\n function join(options) {\n _latestOptions = options;\n return new Promise((resolve, reject) => {\n if (isJoined) {\n resolve({});\n return;\n }\n let joinPromise;\n if (domain === \"global\") {\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\n }\n else {\n logger.debug(`joining domain ${domain}`);\n const joinMsg = {\n type: \"join\",\n destination: domain,\n domain: \"global\",\n options,\n };\n joinPromise = send(joinMsg);\n }\n joinPromise\n .then(() => {\n handleJoined();\n resolve({});\n })\n .catch((err) => {\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\n reject(err);\n });\n });\n }\n function leave() {\n if (domain === \"global\") {\n return Promise.resolve();\n }\n logger.debug(\"stopping session \" + domain + \"...\");\n const leaveMsg = {\n type: \"leave\",\n destination: domain,\n domain: \"global\",\n };\n tryReconnecting = false;\n return send(leaveMsg)\n .then(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n })\n .catch(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n });\n }\n function handleJoined() {\n logger.debug(\"did join \" + domain);\n isJoined = true;\n const wasReconnect = tryReconnecting;\n tryReconnecting = false;\n callbacks.execute(\"onJoined\", wasReconnect);\n }\n function handleConnectionDisconnected() {\n _connectionOn = false;\n logger.debug(\"connection is down\");\n isJoined = false;\n tryReconnecting = true;\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n join(_latestOptions);\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n logger.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\n delete requestsMap[requestId];\n errorMsg._tag = tag;\n reject(errorMsg);\n },\n };\n connection\n .send(msg, options)\n .catch((err) => {\n requestsMap[requestId].error({ err });\n });\n });\n }\n function sendFireAndForget(msg) {\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\n msg.domain = msg.domain ?? domain;\n msg.peer_id = connection.peerId;\n return connection.send(msg);\n }\n return {\n join,\n leave,\n onJoined,\n onLeft,\n send,\n sendFireAndForget,\n on: (type, callback) => {\n connection.on(type, (msg) => {\n if (msg.domain !== domain) {\n return;\n }\n try {\n callback(msg);\n }\n catch (e) {\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\n }\n });\n },\n loggedIn: (callback) => connection.loggedIn(callback),\n connected: (callback) => connection.connected(callback),\n disconnected: (callback) => connection.disconnected(callback),\n get peerId() {\n return connection.peerId;\n },\n get domain() {\n return domain;\n },\n };\n}\n\nclass Connection {\n settings;\n logger;\n protocolVersion = 3;\n peerId;\n token;\n info;\n resolvedIdentity;\n availableDomains;\n gatewayToken;\n replayer;\n messageHandlers = {};\n ids = 1;\n registry = CallbackRegistryFactory();\n _connected = false;\n isTrace = false;\n transport;\n _defaultTransport;\n _defaultAuth;\n _targetTransport;\n _targetAuth;\n _swapTransport = false;\n _switchInProgress = false;\n _transportSubscriptions = [];\n datePrefix = \"#T42_DATE#\";\n datePrefixLen = this.datePrefix.length;\n dateMinLen = this.datePrefixLen + 1;\n datePrefixFirstChar = this.datePrefix[0];\n _sequelizer = new AsyncSequelizer();\n _isLoggedIn = false;\n shouldTryLogin = true;\n pingTimer;\n sessions = [];\n globalDomain;\n initialLogin = true;\n initialLoginAttempts = 3;\n loginConfig;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n this.logger.trace(`Starting login for transport: ${this.transport.name()} and auth ${JSON.stringify(authRequest)}`);\n try {\n await this.transport.open();\n this.logger.trace(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.trace(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.trace(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n return;\n }\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.handleDisconnected();\n this.registry.execute(\"disconnected\");\n }\n }\n handleDisconnected() {\n this.setLoggedIn(false);\n const tryToLogin = this.shouldTryLogin;\n if (tryToLogin && this.initialLogin) {\n if (this.initialLoginAttempts <= 0) {\n return;\n }\n this.initialLoginAttempts--;\n }\n this.logger.debug(\"disconnected - will try new login?\" + this.shouldTryLogin);\n if (this.shouldTryLogin) {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n this.login(this.loginConfig, true)\n .catch(() => {\n setTimeout(this.handleDisconnected.bind(this), this.settings.reconnectInterval || 1000);\n });\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.logger.info(\"logging in...\");\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.initialLogin = false;\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\");\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(3)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n interop.invoke(Logger.InteropMethodName, {\n msg: `${message}`,\n logger: loggerName,\n level\n });\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n this.logFn.error(toPrint, error);\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.4.2\";\n\nfunction prepareConfig (configuration, ext, glue42gd) {\n let nodeStartingContext;\n if (Utils.isNode()) {\n const startingContextString = process.env._GD_STARTING_CONTEXT_;\n if (startingContextString) {\n try {\n nodeStartingContext = JSON.parse(startingContextString);\n }\n catch {\n }\n }\n }\n function getConnection() {\n const gwConfig = configuration.gateway;\n const protocolVersion = gwConfig?.protocolVersion ?? 3;\n const reconnectInterval = gwConfig?.reconnectInterval;\n const reconnectAttempts = gwConfig?.reconnectAttempts;\n const defaultWs = \"ws://localhost:8385\";\n let ws = gwConfig?.ws;\n const sharedWorker = gwConfig?.sharedWorker;\n const inproc = gwConfig?.inproc;\n const webPlatform = gwConfig?.webPlatform ?? undefined;\n if (glue42gd) {\n ws = glue42gd.gwURL;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwURL) {\n ws = nodeStartingContext.gwURL;\n }\n if (!ws && !sharedWorker && !inproc) {\n ws = defaultWs;\n }\n let instanceId;\n let windowId;\n let pid;\n let environment;\n let region;\n const appName = getApplication();\n let uniqueAppName = appName;\n if (typeof glue42gd !== \"undefined\") {\n windowId = glue42gd.windowId;\n pid = glue42gd.pid;\n if (glue42gd.env) {\n environment = glue42gd.env.env;\n region = glue42gd.env.region;\n }\n uniqueAppName = glue42gd.application ?? \"glue-app\";\n instanceId = glue42gd.appInstanceId;\n }\n else if (Utils.isNode()) {\n pid = process.pid;\n if (nodeStartingContext) {\n environment = nodeStartingContext.env;\n region = nodeStartingContext.region;\n instanceId = nodeStartingContext.instanceId;\n }\n }\n else if (typeof window?.glue42electron !== \"undefined\") {\n windowId = window?.glue42electron.instanceId;\n pid = window?.glue42electron.pid;\n environment = window?.glue42electron.env;\n region = window?.glue42electron.region;\n uniqueAppName = window?.glue42electron.application ?? \"glue-app\";\n instanceId = window?.glue42electron.instanceId;\n }\n else ;\n const replaySpecs = configuration.gateway?.replaySpecs ?? [];\n replaySpecs.push(ContextMessageReplaySpec);\n let identity = {\n application: uniqueAppName,\n applicationName: appName,\n windowId,\n instance: instanceId,\n process: pid,\n region,\n environment,\n api: ext.version || version\n };\n if (configuration.identity) {\n identity = Object.assign(identity, configuration.identity);\n }\n return {\n identity,\n reconnectInterval,\n ws,\n sharedWorker,\n webPlatform,\n inproc,\n protocolVersion,\n reconnectAttempts,\n replaySpecs,\n };\n }\n function getContexts() {\n if (typeof configuration.contexts === \"undefined\") {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"object\") {\n return Object.assign({}, { reAnnounceKnownContexts: true }, configuration.contexts);\n }\n return false;\n }\n function getApplication() {\n if (configuration.application) {\n return configuration.application;\n }\n if (glue42gd) {\n return glue42gd.applicationName;\n }\n if (typeof window !== \"undefined\" && typeof window.glue42electron !== \"undefined\") {\n return window.glue42electron.application;\n }\n const uid = nanoid(10);\n if (Utils.isNode()) {\n if (nodeStartingContext) {\n return nodeStartingContext.applicationConfig.name;\n }\n return \"NodeJS\" + uid;\n }\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n return document.title + ` (${uid})`;\n }\n return uid;\n }\n function getAuth() {\n if (typeof configuration.auth === \"string\") {\n return {\n token: configuration.auth\n };\n }\n if (configuration.auth) {\n return configuration.auth;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwToken) {\n return {\n gatewayToken: nodeStartingContext.gwToken\n };\n }\n if (configuration.gateway?.webPlatform || configuration.gateway?.inproc || configuration.gateway?.sharedWorker) {\n return {\n username: \"glue42\", password: \"glue42\"\n };\n }\n }\n function getLogger() {\n let config = configuration.logger;\n const defaultLevel = \"warn\";\n if (!config) {\n config = defaultLevel;\n }\n let gdConsoleLevel;\n if (glue42gd) {\n gdConsoleLevel = glue42gd.consoleLogLevel;\n }\n if (typeof config === \"string\") {\n return { console: gdConsoleLevel ?? config, publish: defaultLevel };\n }\n return {\n console: gdConsoleLevel ?? config.console ?? defaultLevel,\n publish: config.publish ?? defaultLevel\n };\n }\n const connection = getConnection();\n let application = getApplication();\n if (typeof window !== \"undefined\") {\n const windowAsAny = window;\n const containerApplication = windowAsAny.htmlContainer ?\n `${windowAsAny.htmlContainer.containerName}.${windowAsAny.htmlContainer.application}` :\n windowAsAny?.glue42gd?.application;\n if (containerApplication) {\n application = containerApplication;\n }\n }\n return {\n bus: configuration.bus ?? false,\n application,\n auth: getAuth(),\n logger: getLogger(),\n connection,\n metrics: configuration.metrics ?? true,\n contexts: getContexts(),\n version: ext.version || version,\n libs: ext.libs ?? [],\n customLogger: configuration.customLogger\n };\n}\n\nclass GW3ContextData {\n name;\n contextId;\n context;\n isAnnounced;\n joinedActivity;\n updateCallbacks = {};\n activityId;\n sentExplicitSubscription;\n hasReceivedSnapshot;\n constructor(contextId, name, isAnnounced, activityId) {\n this.contextId = contextId;\n this.name = name;\n this.isAnnounced = isAnnounced;\n this.activityId = activityId;\n this.context = {};\n }\n hasCallbacks() {\n return Object.keys(this.updateCallbacks).length > 0;\n }\n getState() {\n if (this.isAnnounced && this.hasCallbacks()) {\n return 3;\n }\n if (this.isAnnounced) {\n return 2;\n }\n if (this.hasCallbacks()) {\n return 1;\n }\n return 0;\n }\n}\n\nvar lodash_clonedeep = {exports: {}};\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nlodash_clonedeep.exports;\n\n(function (module, exports) {\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t promiseTag = '[object Promise]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t symbolTag = '[object Symbol]',\n\t weakMapTag = '[object WeakMap]';\n\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to match `RegExp` flags from their coerced string values. */\n\tvar reFlags = /\\w*$/;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n\t/** Used to identify `toStringTag` values supported by `_.clone`. */\n\tvar cloneableTags = {};\n\tcloneableTags[argsTag] = cloneableTags[arrayTag] =\n\tcloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n\tcloneableTags[boolTag] = cloneableTags[dateTag] =\n\tcloneableTags[float32Tag] = cloneableTags[float64Tag] =\n\tcloneableTags[int8Tag] = cloneableTags[int16Tag] =\n\tcloneableTags[int32Tag] = cloneableTags[mapTag] =\n\tcloneableTags[numberTag] = cloneableTags[objectTag] =\n\tcloneableTags[regexpTag] = cloneableTags[setTag] =\n\tcloneableTags[stringTag] = cloneableTags[symbolTag] =\n\tcloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n\tcloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n\tcloneableTags[errorTag] = cloneableTags[funcTag] =\n\tcloneableTags[weakMapTag] = false;\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t/** Detect free variable `exports`. */\n\tvar freeExports = exports && !exports.nodeType && exports;\n\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\t/**\n\t * Adds the key-value `pair` to `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to modify.\n\t * @param {Array} pair The key-value pair to add.\n\t * @returns {Object} Returns `map`.\n\t */\n\tfunction addMapEntry(map, pair) {\n\t // Don't return `map.set` because it's not chainable in IE 11.\n\t map.set(pair[0], pair[1]);\n\t return map;\n\t}\n\n\t/**\n\t * Adds `value` to `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to modify.\n\t * @param {*} value The value to add.\n\t * @returns {Object} Returns `set`.\n\t */\n\tfunction addSetEntry(set, value) {\n\t // Don't return `set.add` because it's not chainable in IE 11.\n\t set.add(value);\n\t return set;\n\t}\n\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t if (initAccum && length) {\n\t accumulator = array[++index];\n\t }\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Converts `map` to its key-value pairs.\n\t *\n\t * @private\n\t * @param {Object} map The map to convert.\n\t * @returns {Array} Returns the key-value pairs.\n\t */\n\tfunction mapToArray(map) {\n\t var index = -1,\n\t result = Array(map.size);\n\n\t map.forEach(function(value, key) {\n\t result[++index] = [key, value];\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined,\n\t Symbol = root.Symbol,\n\t Uint8Array = root.Uint8Array,\n\t getPrototype = overArg(Object.getPrototypeOf, Object),\n\t objectCreate = Object.create,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t splice = arrayProto.splice;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeGetSymbols = Object.getOwnPropertySymbols,\n\t nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n\t nativeKeys = overArg(Object.keys, Object);\n\n\t/* Built-in method references that are verified to be native. */\n\tvar DataView = getNative(root, 'DataView'),\n\t Map = getNative(root, 'Map'),\n\t Promise = getNative(root, 'Promise'),\n\t Set = getNative(root, 'Set'),\n\t WeakMap = getNative(root, 'WeakMap'),\n\t nativeCreate = getNative(Object, 'create');\n\n\t/** Used to detect maps, sets, and weakmaps. */\n\tvar dataViewCtorString = toSource(DataView),\n\t mapCtorString = toSource(Map),\n\t promiseCtorString = toSource(Promise),\n\t setCtorString = toSource(Set),\n\t weakMapCtorString = toSource(WeakMap);\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t/**\n\t * Creates a stack cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Stack(entries) {\n\t this.__data__ = new ListCache(entries);\n\t}\n\n\t/**\n\t * Removes all key-value entries from the stack.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Stack\n\t */\n\tfunction stackClear() {\n\t this.__data__ = new ListCache;\n\t}\n\n\t/**\n\t * Removes `key` and its value from the stack.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction stackDelete(key) {\n\t return this.__data__['delete'](key);\n\t}\n\n\t/**\n\t * Gets the stack value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction stackGet(key) {\n\t return this.__data__.get(key);\n\t}\n\n\t/**\n\t * Checks if a stack value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Stack\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction stackHas(key) {\n\t return this.__data__.has(key);\n\t}\n\n\t/**\n\t * Sets the stack `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the stack cache instance.\n\t */\n\tfunction stackSet(key, value) {\n\t var cache = this.__data__;\n\t if (cache instanceof ListCache) {\n\t var pairs = cache.__data__;\n\t if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n\t pairs.push([key, value]);\n\t return this;\n\t }\n\t cache = this.__data__ = new MapCache(pairs);\n\t }\n\t cache.set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `Stack`.\n\tStack.prototype.clear = stackClear;\n\tStack.prototype['delete'] = stackDelete;\n\tStack.prototype.get = stackGet;\n\tStack.prototype.has = stackHas;\n\tStack.prototype.set = stackSet;\n\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\n\t var length = result.length,\n\t skipIndexes = !!length;\n\n\t for (var key in value) {\n\t if ((inherited || hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t/**\n\t * The base implementation of `_.assign` without support for multiple sources\n\t * or `customizer` functions.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseAssign(object, source) {\n\t return object && copyObject(source, keys(source), object);\n\t}\n\n\t/**\n\t * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n\t * traversed objects.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @param {boolean} [isFull] Specify a clone including symbols.\n\t * @param {Function} [customizer] The function to customize cloning.\n\t * @param {string} [key] The key of `value`.\n\t * @param {Object} [object] The parent object of `value`.\n\t * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n\t var result;\n\t if (customizer) {\n\t result = object ? customizer(value, key, object, stack) : customizer(value);\n\t }\n\t if (result !== undefined) {\n\t return result;\n\t }\n\t if (!isObject(value)) {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isArr) {\n\t result = initCloneArray(value);\n\t if (!isDeep) {\n\t return copyArray(value, result);\n\t }\n\t } else {\n\t var tag = getTag(value),\n\t isFunc = tag == funcTag || tag == genTag;\n\n\t if (isBuffer(value)) {\n\t return cloneBuffer(value, isDeep);\n\t }\n\t if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n\t if (isHostObject(value)) {\n\t return object ? value : {};\n\t }\n\t result = initCloneObject(isFunc ? {} : value);\n\t if (!isDeep) {\n\t return copySymbols(value, baseAssign(result, value));\n\t }\n\t } else {\n\t if (!cloneableTags[tag]) {\n\t return object ? value : {};\n\t }\n\t result = initCloneByTag(value, tag, baseClone, isDeep);\n\t }\n\t }\n\t // Check for circular references and return its corresponding clone.\n\t stack || (stack = new Stack);\n\t var stacked = stack.get(value);\n\t if (stacked) {\n\t return stacked;\n\t }\n\t stack.set(value, result);\n\n\t if (!isArr) {\n\t var props = isFull ? getAllKeys(value) : keys(value);\n\t }\n\t arrayEach(props || value, function(subValue, key) {\n\t if (props) {\n\t key = subValue;\n\t subValue = value[key];\n\t }\n\t // Recursively populate clone (susceptible to call stack limits).\n\t assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(proto) {\n\t return isObject(proto) ? objectCreate(proto) : {};\n\t}\n\n\t/**\n\t * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n\t * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n\t * symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @param {Function} symbolsFunc The function to get the symbols of `object`.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n\t var result = keysFunc(object);\n\t return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n\t}\n\n\t/**\n\t * The base implementation of `getTag`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t return objectToString.call(value);\n\t}\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `buffer`.\n\t *\n\t * @private\n\t * @param {Buffer} buffer The buffer to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Buffer} Returns the cloned buffer.\n\t */\n\tfunction cloneBuffer(buffer, isDeep) {\n\t if (isDeep) {\n\t return buffer.slice();\n\t }\n\t var result = new buffer.constructor(buffer.length);\n\t buffer.copy(result);\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `arrayBuffer`.\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n\t * @returns {ArrayBuffer} Returns the cloned array buffer.\n\t */\n\tfunction cloneArrayBuffer(arrayBuffer) {\n\t var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n\t new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `dataView`.\n\t *\n\t * @private\n\t * @param {Object} dataView The data view to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned data view.\n\t */\n\tfunction cloneDataView(dataView, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n\t return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n\t}\n\n\t/**\n\t * Creates a clone of `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned map.\n\t */\n\tfunction cloneMap(map, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n\t return arrayReduce(array, addMapEntry, new map.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of `regexp`.\n\t *\n\t * @private\n\t * @param {Object} regexp The regexp to clone.\n\t * @returns {Object} Returns the cloned regexp.\n\t */\n\tfunction cloneRegExp(regexp) {\n\t var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n\t result.lastIndex = regexp.lastIndex;\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned set.\n\t */\n\tfunction cloneSet(set, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n\t return arrayReduce(array, addSetEntry, new set.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of the `symbol` object.\n\t *\n\t * @private\n\t * @param {Object} symbol The symbol object to clone.\n\t * @returns {Object} Returns the cloned symbol object.\n\t */\n\tfunction cloneSymbol(symbol) {\n\t return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n\t}\n\n\t/**\n\t * Creates a clone of `typedArray`.\n\t *\n\t * @private\n\t * @param {Object} typedArray The typed array to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned typed array.\n\t */\n\tfunction cloneTypedArray(typedArray, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n\t return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\n\t/**\n\t * Copies the values of `source` to `array`.\n\t *\n\t * @private\n\t * @param {Array} source The array to copy values from.\n\t * @param {Array} [array=[]] The array to copy values to.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\n\t var index = -1,\n\t length = props.length;\n\n\t while (++index < length) {\n\t var key = props[index];\n\n\t var newValue = customizer\n\t ? customizer(object[key], source[key], key, object, source)\n\t : undefined;\n\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\n\t/**\n\t * Copies own symbol properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy symbols from.\n\t * @param {Object} [object={}] The object to copy symbols to.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copySymbols(source, object) {\n\t return copyObject(source, getSymbols(source), object);\n\t}\n\n\t/**\n\t * Creates an array of own enumerable property names and symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction getAllKeys(object) {\n\t return baseGetAllKeys(object, keys, getSymbols);\n\t}\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable symbol properties of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of symbols.\n\t */\n\tvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n\t/**\n\t * Gets the `toStringTag` of `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tvar getTag = baseGetTag;\n\n\t// Fallback for data views, maps, sets, and weak maps in IE 11,\n\t// for data views in Edge < 14, and promises in Node.js.\n\tif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n\t (Map && getTag(new Map) != mapTag) ||\n\t (Promise && getTag(Promise.resolve()) != promiseTag) ||\n\t (Set && getTag(new Set) != setTag) ||\n\t (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n\t getTag = function(value) {\n\t var result = objectToString.call(value),\n\t Ctor = result == objectTag ? value.constructor : undefined,\n\t ctorString = Ctor ? toSource(Ctor) : undefined;\n\n\t if (ctorString) {\n\t switch (ctorString) {\n\t case dataViewCtorString: return dataViewTag;\n\t case mapCtorString: return mapTag;\n\t case promiseCtorString: return promiseTag;\n\t case setCtorString: return setTag;\n\t case weakMapCtorString: return weakMapTag;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\n\t/**\n\t * Initializes an array clone.\n\t *\n\t * @private\n\t * @param {Array} array The array to clone.\n\t * @returns {Array} Returns the initialized clone.\n\t */\n\tfunction initCloneArray(array) {\n\t var length = array.length,\n\t result = array.constructor(length);\n\n\t // Add properties assigned by `RegExp#exec`.\n\t if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n\t result.index = array.index;\n\t result.input = array.input;\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Initializes an object clone.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneObject(object) {\n\t return (typeof object.constructor == 'function' && !isPrototype(object))\n\t ? baseCreate(getPrototype(object))\n\t : {};\n\t}\n\n\t/**\n\t * Initializes an object clone based on its `toStringTag`.\n\t *\n\t * **Note:** This function only supports cloning values with tags of\n\t * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @param {string} tag The `toStringTag` of the object to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n\t var Ctor = object.constructor;\n\t switch (tag) {\n\t case arrayBufferTag:\n\t return cloneArrayBuffer(object);\n\n\t case boolTag:\n\t case dateTag:\n\t return new Ctor(+object);\n\n\t case dataViewTag:\n\t return cloneDataView(object, isDeep);\n\n\t case float32Tag: case float64Tag:\n\t case int8Tag: case int16Tag: case int32Tag:\n\t case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n\t return cloneTypedArray(object, isDeep);\n\n\t case mapTag:\n\t return cloneMap(object, isDeep, cloneFunc);\n\n\t case numberTag:\n\t case stringTag:\n\t return new Ctor(object);\n\n\t case regexpTag:\n\t return cloneRegExp(object);\n\n\t case setTag:\n\t return cloneSet(object, isDeep, cloneFunc);\n\n\t case symbolTag:\n\t return cloneSymbol(object);\n\t }\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n\t return value === proto;\n\t}\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t/**\n\t * This method is like `_.clone` except that it recursively clones `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 1.0.0\n\t * @category Lang\n\t * @param {*} value The value to recursively clone.\n\t * @returns {*} Returns the deep cloned value.\n\t * @see _.clone\n\t * @example\n\t *\n\t * var objects = [{ 'a': 1 }, { 'b': 2 }];\n\t *\n\t * var deep = _.cloneDeep(objects);\n\t * console.log(deep[0] === objects[0]);\n\t * // => false\n\t */\n\tfunction cloneDeep(value) {\n\t return baseClone(value, true, true);\n\t}\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\n\t/**\n\t * This method returns a new empty array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {Array} Returns the new empty array.\n\t * @example\n\t *\n\t * var arrays = _.times(2, _.stubArray);\n\t *\n\t * console.log(arrays);\n\t * // => [[], []]\n\t *\n\t * console.log(arrays[0] === arrays[1]);\n\t * // => false\n\t */\n\tfunction stubArray() {\n\t return [];\n\t}\n\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\n\tmodule.exports = cloneDeep; \n} (lodash_clonedeep, lodash_clonedeep.exports));\n\nvar lodash_clonedeepExports = lodash_clonedeep.exports;\nvar cloneDeep = /*@__PURE__*/getDefaultExportFromCjs(lodash_clonedeepExports);\n\nfunction applyContextDelta(context, delta, logger) {\n try {\n if (logger?.canPublish(\"trace\")) {\n logger?.trace(`applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`);\n }\n if (!delta) {\n return context;\n }\n if (delta.reset) {\n context = { ...delta.reset };\n return context;\n }\n context = deepClone(context, undefined);\n if (delta.commands) {\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n deletePath(context, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(context, command.value, command.path);\n }\n }\n return context;\n }\n const added = delta.added;\n const updated = delta.updated;\n const removed = delta.removed;\n if (added) {\n Object.keys(added).forEach((key) => {\n context[key] = added[key];\n });\n }\n if (updated) {\n Object.keys(updated).forEach((key) => {\n mergeObjectsProperties(key, context, updated);\n });\n }\n if (removed) {\n removed.forEach((key) => {\n delete context[key];\n });\n }\n return context;\n }\n catch (e) {\n logger?.error(`error applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`, e);\n return context;\n }\n}\nfunction deepClone(obj, hash) {\n return cloneDeep(obj);\n}\nconst mergeObjectsProperties = (key, what, withWhat) => {\n const right = withWhat[key];\n if (right === undefined) {\n return what;\n }\n const left = what[key];\n if (!left || !right) {\n what[key] = right;\n return what;\n }\n if (typeof left === \"string\" ||\n typeof left === \"number\" ||\n typeof left === \"boolean\" ||\n typeof right === \"string\" ||\n typeof right === \"number\" ||\n typeof right === \"boolean\" ||\n Array.isArray(left) ||\n Array.isArray(right)) {\n what[key] = right;\n return what;\n }\n what[key] = Object.assign({}, left, right);\n return what;\n};\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n }\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n if (x.constructor !== y.constructor) {\n return false;\n }\n for (const p in x) {\n if (!x.hasOwnProperty(p)) {\n continue;\n }\n if (!y.hasOwnProperty(p)) {\n return false;\n }\n if (x[p] === y[p]) {\n continue;\n }\n if (typeof (x[p]) !== \"object\") {\n return false;\n }\n if (!deepEqual(x[p], y[p])) {\n return false;\n }\n }\n for (const p in y) {\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\n return false;\n }\n }\n return true;\n}\nfunction setValueToPath(obj, value, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n obj[pathArr[i]] = {};\n }\n if (typeof obj[pathArr[i]] !== \"object\") {\n obj[pathArr[i]] = {};\n }\n obj = obj[pathArr[i]];\n }\n obj[pathArr[i]] = value;\n}\nfunction isSubset(superObj, subObj) {\n return Object.keys(subObj).every((ele) => {\n if (typeof subObj[ele] === \"object\") {\n return isSubset(superObj?.[ele] || {}, subObj[ele] || {});\n }\n return subObj[ele] === superObj?.[ele];\n });\n}\nfunction deletePath(obj, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n return;\n }\n obj = obj[pathArr[i]];\n }\n delete obj[pathArr[i]];\n}\n\nclass GW3Bridge {\n _logger;\n _connection;\n _trackAllContexts;\n _reAnnounceKnownContexts;\n _gw3Session;\n _contextNameToData = {};\n _gw3Subscriptions = [];\n _nextCallbackSubscriptionNumber = 0;\n _creationPromises = {};\n _contextNameToId = {};\n _contextIdToName = {};\n _protocolVersion = undefined;\n _contextsTempCache = {};\n _contextsSubscriptionsCache = [];\n _systemContextsSubKey;\n get protocolVersion() {\n if (!this._protocolVersion) {\n const contextsDomainInfo = this._connection.availableDomains.find((d) => d.uri === \"context\");\n this._protocolVersion = contextsDomainInfo?.version ?? 1;\n }\n return this._protocolVersion;\n }\n get setPathSupported() {\n return this.protocolVersion >= 2;\n }\n constructor(config) {\n this._connection = config.connection;\n this._logger = config.logger;\n this._trackAllContexts = config.trackAllContexts;\n this._reAnnounceKnownContexts = config.reAnnounceKnownContexts;\n this._gw3Session = this._connection.domain(\"global\", [\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_CONTEXT_UPDATED,\n ]);\n this._gw3Session.disconnected(this.resetState.bind(this));\n this._gw3Session.onJoined((wasReconnect) => {\n if (!wasReconnect) {\n return;\n }\n if (!this._reAnnounceKnownContexts) {\n return this._connection.setLibReAnnounced({ name: \"contexts\" });\n }\n this.reInitiateState().then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }));\n });\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n }\n dispose() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n this._gw3Subscriptions.length = 0;\n for (const contextName in this._contextNameToData) {\n if (this._contextNameToId.hasOwnProperty(contextName)) {\n delete this._contextNameToData[contextName];\n }\n }\n }\n createContext(name, data) {\n if (name in this._creationPromises) {\n return this._creationPromises[name];\n }\n this._creationPromises[name] =\n this._gw3Session\n .send({\n type: GW_MESSAGE_CREATE_CONTEXT,\n domain: \"global\",\n name,\n data,\n lifetime: \"retained\",\n })\n .then((createContextMsg) => {\n this._contextNameToId[name] = createContextMsg.context_id;\n this._contextIdToName[createContextMsg.context_id] = name;\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\n contextData.isAnnounced = true;\n contextData.name = name;\n contextData.contextId = createContextMsg.context_id;\n contextData.context = createContextMsg.data || deepClone(data);\n contextData.hasReceivedSnapshot = true;\n this._contextNameToData[name] = contextData;\n delete this._creationPromises[name];\n return createContextMsg.context_id;\n });\n return this._creationPromises[name];\n }\n all() {\n return Object.keys(this._contextNameToData)\n .filter((name) => this._contextNameToData[name].isAnnounced);\n }\n async update(name, delta) {\n if (delta) {\n delta = deepClone(delta);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, delta);\n }\n let currentContext = contextData.context;\n if (!contextData.hasCallbacks()) {\n currentContext = await this.get(contextData.name);\n }\n const calculatedDelta = this.setPathSupported ?\n this.calculateContextDeltaV2(currentContext, delta) :\n this.calculateContextDeltaV1(currentContext, delta);\n if (!Object.keys(calculatedDelta.added).length\n && !Object.keys(calculatedDelta.updated).length\n && !calculatedDelta.removed.length\n && !calculatedDelta.commands?.length) {\n return Promise.resolve();\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: calculatedDelta,\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, calculatedDelta, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async set(name, data) {\n if (data) {\n data = deepClone(data);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, data);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { reset: data },\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n reset: data,\n added: {},\n removed: [],\n updated: {}\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n setPath(name, path, value) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPath operation is not supported, use Glue42 3.10 or later\");\n }\n return this.setPaths(name, [{ path, value }]);\n }\n async setPaths(name, pathValues) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPaths operation is not supported, use Glue42 3.10 or later\");\n }\n if (pathValues) {\n pathValues = deepClone(pathValues);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n const obj = {};\n for (const pathValue of pathValues) {\n setValueToPath(obj, pathValue.value, pathValue.path);\n }\n return this.createContext(name, obj);\n }\n const commands = [];\n for (const pathValue of pathValues) {\n if (pathValue.value === null) {\n commands.push({ type: \"remove\", path: pathValue.path });\n }\n else {\n commands.push({ type: \"set\", path: pathValue.path, value: pathValue.value });\n }\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { commands }\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n added: {},\n removed: [],\n updated: {},\n commands\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async get(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return Promise.resolve({});\n }\n if (contextData && (!contextData.hasCallbacks() || !contextData.hasReceivedSnapshot)) {\n return new Promise((resolve) => {\n this.subscribe(name, (data, _d, _r, un) => {\n this.unsubscribe(un);\n resolve(data);\n });\n });\n }\n const context = contextData?.context ?? {};\n return Promise.resolve(deepClone(context));\n }\n async subscribe(name, callback, subscriptionKey) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const thisCallbackSubscriptionNumber = typeof subscriptionKey === \"undefined\" ? this._nextCallbackSubscriptionNumber : subscriptionKey;\n if (typeof subscriptionKey === \"undefined\") {\n this._nextCallbackSubscriptionNumber += 1;\n }\n if (this._contextsSubscriptionsCache.every((subscription) => subscription.subKey !== this._nextCallbackSubscriptionNumber)) {\n this._contextsSubscriptionsCache.push({ contextName: name, subKey: thisCallbackSubscriptionNumber, callback });\n }\n let contextData = this._contextNameToData[name];\n if (!contextData ||\n !contextData.isAnnounced) {\n contextData = contextData || new GW3ContextData(undefined, name, false, undefined);\n this._contextNameToData[name] = contextData;\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n const hadCallbacks = contextData.hasCallbacks();\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n if (!hadCallbacks) {\n if (!contextData.joinedActivity) {\n if (contextData.context && contextData.sentExplicitSubscription) {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n return this.sendSubscribe(contextData)\n .then(() => thisCallbackSubscriptionNumber);\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n unsubscribe(subscriptionKey) {\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter((subscription) => subscription.subKey !== subscriptionKey);\n for (const name of Object.keys(this._contextNameToData)) {\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return;\n }\n const hadCallbacks = contextData.hasCallbacks();\n delete contextData.updateCallbacks[subscriptionKey];\n if (contextData.isAnnounced &&\n hadCallbacks &&\n !contextData.hasCallbacks() &&\n contextData.sentExplicitSubscription) {\n this.sendUnsubscribe(contextData).catch(() => { });\n }\n if (!contextData.isAnnounced &&\n !contextData.hasCallbacks()) {\n delete this._contextNameToData[name];\n }\n }\n }\n async destroy(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return Promise.reject(`context with ${name} does not exist`);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_DESTROY_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n handleUpdated(contextData, delta, extraData) {\n const oldContext = contextData.context;\n contextData.context = applyContextDelta(contextData.context, delta, this._logger);\n contextData.hasReceivedSnapshot = true;\n if (this._contextNameToData[contextData.name] === contextData &&\n !deepEqual(oldContext, contextData.context)) {\n this.invokeUpdateCallbacks(contextData, delta, extraData);\n }\n }\n subscribeToContextCreatedMessages() {\n const createdMessageTypes = [\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_ACTIVITY_CREATED,\n ];\n for (const createdMessageType of createdMessageTypes) {\n const sub = this._connection.on(createdMessageType, this.handleContextCreatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextCreatedMessage(contextCreatedMsg) {\n const createdMessageType = contextCreatedMsg.type;\n if (createdMessageType === GW_MESSAGE_ACTIVITY_CREATED) {\n this._contextNameToId[contextCreatedMsg.activity_id] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.activity_id;\n }\n else if (createdMessageType === GW_MESSAGE_CONTEXT_ADDED) {\n this._contextNameToId[contextCreatedMsg.name] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.name;\n }\n else ;\n const name = this._contextIdToName[contextCreatedMsg.context_id];\n if (!name) {\n throw new Error(\"Received created event for context with unknown name: \" + contextCreatedMsg.context_id);\n }\n if (!this._contextNameToId[name]) {\n throw new Error(\"Received created event for context with unknown id: \" + contextCreatedMsg.context_id);\n }\n let contextData = this._contextNameToData[name];\n if (contextData) {\n if (contextData.isAnnounced) {\n return;\n }\n else {\n if (!contextData.hasCallbacks()) {\n throw new Error(\"Assertion failure: contextData.hasCallbacks()\");\n }\n contextData.isAnnounced = true;\n contextData.contextId = contextCreatedMsg.context_id;\n contextData.activityId = contextCreatedMsg.activity_id;\n if (!contextData.sentExplicitSubscription) {\n this.sendSubscribe(contextData);\n }\n }\n }\n else {\n this._contextNameToData[name] = contextData =\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\n if (this._trackAllContexts) {\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\n }\n }\n }\n subscribeToContextUpdatedMessages() {\n const updatedMessageTypes = [\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_JOINED_ACTIVITY,\n ];\n for (const updatedMessageType of updatedMessageTypes) {\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextUpdatedMessage(contextUpdatedMsg) {\n const updatedMessageType = contextUpdatedMsg.type;\n const contextId = contextUpdatedMsg.context_id;\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\n const justSeen = !contextData || !contextData.isAnnounced;\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n if (!contextData) {\n contextData =\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\n }\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\n contextData.contextId = contextId;\n contextData.isAnnounced = true;\n contextData.activityId = contextUpdatedMsg.activity_id;\n contextData.joinedActivity = true;\n }\n else {\n if (!contextData || !contextData.isAnnounced) {\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\n contextData.sentExplicitSubscription = true;\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\n }\n else {\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\n }\n return;\n }\n }\n const oldContext = contextData.context;\n contextData.hasReceivedSnapshot = true;\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData.context = contextUpdatedMsg.data || {};\n }\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n contextData.context = contextUpdatedMsg.context_snapshot || {};\n }\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\n }\n else {\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\n }\n if (justSeen ||\n !deepEqual(contextData.context, oldContext) ||\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\n }\n }\n invokeUpdateCallbacks(contextData, delta, extraData) {\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\n if (delta.commands) {\n delta.added = delta.updated = delta.reset = {};\n delta.removed = [];\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n if (command.path.indexOf(\".\") === -1) {\n delta.removed.push(command.path);\n }\n setValueToPath(delta.updated, null, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(delta.updated, command.value, command.path);\n }\n }\n }\n for (const updateCallbackIndex in contextData.updateCallbacks) {\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\n try {\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\n }\n catch (err) {\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\n }\n }\n }\n }\n subscribeToContextDestroyedMessages() {\n const destroyedMessageTypes = [\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n ];\n for (const destroyedMessageType of destroyedMessageTypes) {\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextDestroyedMessage(destroyedMsg) {\n const destroyedMessageType = destroyedMsg.type;\n let contextId;\n let name;\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\n name = destroyedMsg.activity_id;\n contextId = this._contextNameToId[name];\n if (!contextId) {\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\n return;\n }\n }\n else {\n contextId = destroyedMsg.context_id;\n name = this._contextIdToName[contextId];\n if (!name) {\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\n return;\n }\n }\n delete this._contextIdToName[contextId];\n delete this._contextNameToId[name];\n const contextData = this._contextNameToData[name];\n delete this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\n return;\n }\n }\n sendSubscribe(contextData) {\n contextData.sentExplicitSubscription = true;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n sendUnsubscribe(contextData) {\n contextData.sentExplicitSubscription = false;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n calculateContextDeltaV1(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\n if (from) {\n for (const x of Object.keys(from)) {\n if (Object.keys(to).indexOf(x) !== -1\n && to[x] !== null\n && !deepEqual(from[x], to[x])) {\n delta.updated[x] = to[x];\n }\n }\n }\n for (const x of Object.keys(to)) {\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\n if (to[x] !== null) {\n delta.added[x] = to[x];\n }\n }\n else if (to[x] === null) {\n delta.removed.push(x);\n }\n }\n return delta;\n }\n calculateContextDeltaV2(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\n for (const x of Object.keys(to)) {\n if (to[x] !== null) {\n const fromX = from ? from[x] : null;\n if (!deepEqual(fromX, to[x])) {\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\n }\n }\n else {\n delta.commands?.push({ type: \"remove\", path: x });\n }\n }\n return delta;\n }\n resetState() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n if (this._systemContextsSubKey) {\n this.unsubscribe(this._systemContextsSubKey);\n delete this._systemContextsSubKey;\n }\n this._gw3Subscriptions = [];\n this._contextNameToId = {};\n this._contextIdToName = {};\n delete this._protocolVersion;\n this._contextsTempCache = Object.keys(this._contextNameToData).reduce((cacheSoFar, ctxName) => {\n cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\n return cacheSoFar;\n }, {});\n this._contextNameToData = {};\n }\n async reInitiateState() {\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n await Promise.all(this._contextsSubscriptionsCache.map((subscription) => this.subscribe(subscription.contextName, subscription.callback, subscription.subKey)));\n await this.flushQueue();\n for (const ctxName in this._contextsTempCache) {\n if (typeof this._contextsTempCache[ctxName] !== \"object\" || Object.keys(this._contextsTempCache[ctxName]).length === 0) {\n continue;\n }\n const lastKnownData = this._contextsTempCache[ctxName];\n this._logger.info(`Re-announcing known context: ${ctxName}`);\n await this.flushQueue();\n await this.update(ctxName, lastKnownData);\n }\n this._contextsTempCache = {};\n this._logger.info(\"Contexts are re-announced\");\n }\n flushQueue() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n }\n}\n\nclass ContextsModule {\n initTime;\n initStartTime;\n initEndTime;\n _bridge;\n constructor(config) {\n this._bridge = new GW3Bridge(config);\n }\n all() {\n return this._bridge.all();\n }\n update(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.update(name, data);\n }\n set(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.set(name, data);\n }\n setPath(name, path, data) {\n this.checkName(name);\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(data);\n return this.set(name, data);\n }\n return this._bridge.setPath(name, path, data);\n }\n setPaths(name, paths) {\n this.checkName(name);\n if (!Array.isArray(paths)) {\n throw new Error(\"Please provide the paths as an array of PathValues!\");\n }\n for (const { path, value } of paths) {\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(value);\n }\n }\n return this._bridge.setPaths(name, paths);\n }\n subscribe(name, callback) {\n this.checkName(name);\n if (typeof callback !== \"function\") {\n throw new Error(\"Please provide the callback as a function!\");\n }\n return this._bridge\n .subscribe(name, (data, delta, removed, key, extraData) => callback(data, delta, removed, () => this._bridge.unsubscribe(key), extraData))\n .then((key) => () => {\n this._bridge.unsubscribe(key);\n });\n }\n get(name) {\n this.checkName(name);\n return this._bridge.get(name);\n }\n ready() {\n return Promise.resolve(this);\n }\n destroy(name) {\n this.checkName(name);\n return this._bridge.destroy(name);\n }\n get setPathSupported() {\n return this._bridge.setPathSupported;\n }\n checkName(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new Error(\"Please provide the name as a non-empty string!\");\n }\n }\n checkPath(path) {\n if (typeof path !== \"string\") {\n throw new Error(\"Please provide the path as a dot delimited string!\");\n }\n }\n checkData(data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Please provide the data as an object!\");\n }\n }\n}\n\nfunction promisify (promise, successCallback, errorCallback) {\n if (typeof successCallback !== \"function\" && typeof errorCallback !== \"function\") {\n return promise;\n }\n if (typeof successCallback !== \"function\") {\n successCallback = () => { };\n }\n else if (typeof errorCallback !== \"function\") {\n errorCallback = () => { };\n }\n return promise.then(successCallback, errorCallback);\n}\n\nfunction rejectAfter(ms = 0, promise, error) {\n let timeout;\n const clearTimeoutIfThere = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n promise\n .then(() => {\n clearTimeoutIfThere();\n })\n .catch(() => {\n clearTimeoutIfThere();\n });\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => reject(error), ms);\n });\n}\n\nvar InvokeStatus;\n(function (InvokeStatus) {\n InvokeStatus[InvokeStatus[\"Success\"] = 0] = \"Success\";\n InvokeStatus[InvokeStatus[\"Error\"] = 1] = \"Error\";\n})(InvokeStatus || (InvokeStatus = {}));\nclass Client {\n protocol;\n repo;\n instance;\n configuration;\n constructor(protocol, repo, instance, configuration) {\n this.protocol = protocol;\n this.repo = repo;\n this.instance = instance;\n this.configuration = configuration;\n }\n subscribe(method, options, successCallback, errorCallback, existingSub) {\n const callProtocolSubscribe = (targetServers, stream, successProxy, errorProxy) => {\n options.methodResponseTimeout = options.methodResponseTimeout ?? options.waitTimeoutMs;\n this.protocol.client.subscribe(stream, options, targetServers, successProxy, errorProxy, existingSub);\n };\n const promise = new Promise((resolve, reject) => {\n const successProxy = (sub) => {\n resolve(sub);\n };\n const errorProxy = (err) => {\n reject(err);\n };\n if (!method) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n let methodDef;\n if (typeof method === \"string\") {\n methodDef = { name: method };\n }\n else {\n methodDef = method;\n }\n if (!methodDef.name) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n if (options === undefined) {\n options = {};\n }\n let target = options.target;\n if (target === undefined) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\") {\n reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\", \"best\", or an instance.`));\n return;\n }\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = options.method_response_timeout;\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = this.configuration.methodResponseTimeout;\n }\n }\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = options.wait_for_method_timeout;\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n const delayStep = 500;\n let delayTillNow = 0;\n let currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n callProtocolSubscribe(currentServers, currentServers[0].methods[0], successProxy, errorProxy);\n }\n else {\n const retry = () => {\n if (!target || !(options.waitTimeoutMs)) {\n return;\n }\n delayTillNow += delayStep;\n currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n const streamInfo = currentServers[0].methods[0];\n callProtocolSubscribe(currentServers, streamInfo, successProxy, errorProxy);\n }\n else if (delayTillNow >= options.waitTimeoutMs) {\n const def = typeof method === \"string\" ? { name: method } : method;\n callProtocolSubscribe(currentServers, def, successProxy, errorProxy);\n }\n else {\n setTimeout(retry, delayStep);\n }\n };\n setTimeout(retry, delayStep);\n }\n });\n return promisify(promise, successCallback, errorCallback);\n }\n servers(methodFilter) {\n const filterCopy = methodFilter === undefined\n ? undefined\n : { ...methodFilter };\n return this.getServers(filterCopy).map((serverMethodMap) => {\n return serverMethodMap.server.instance;\n });\n }\n methods(methodFilter) {\n if (typeof methodFilter === \"string\") {\n methodFilter = { name: methodFilter };\n }\n else {\n methodFilter = { ...methodFilter };\n }\n return this.getMethods(methodFilter);\n }\n methodsForInstance(instance) {\n return this.getMethodsForInstance(instance);\n }\n methodAdded(callback) {\n return this.repo.onMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.repo.onMethodRemoved(callback);\n }\n serverAdded(callback) {\n return this.repo.onServerAdded(callback);\n }\n serverRemoved(callback) {\n return this.repo.onServerRemoved((server, reason) => {\n callback(server, reason);\n });\n }\n serverMethodAdded(callback) {\n return this.repo.onServerMethodAdded((server, method) => {\n callback({ server, method });\n });\n }\n serverMethodRemoved(callback) {\n return this.repo.onServerMethodRemoved((server, method) => {\n callback({ server, method });\n });\n }\n async invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n const getInvokePromise = async () => {\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = { ...methodFilter };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n }\n if (!argumentObj) {\n argumentObj = {};\n }\n if (!target) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\" && target !== \"skipMine\") {\n return Promise.reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\" and \"best\".`));\n }\n if (!additionalOptions) {\n additionalOptions = {};\n }\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = additionalOptions.method_response_timeout;\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = this.configuration.methodResponseTimeout;\n }\n }\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = additionalOptions.wait_for_method_timeout;\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n if (additionalOptions.waitTimeoutMs !== undefined && typeof additionalOptions.waitTimeoutMs !== \"number\") {\n return Promise.reject(new Error(`\"${additionalOptions.waitTimeoutMs}\" is not a valid number for \"waitTimeoutMs\" `));\n }\n if (typeof argumentObj !== \"object\") {\n return Promise.reject(new Error(`The method arguments must be an object. method: ${methodDefinition.name}`));\n }\n let serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length === 0) {\n try {\n serversMethodMap = await this.tryToAwaitForMethods(methodDefinition, target, additionalOptions);\n }\n catch (err) {\n const method = {\n ...methodDefinition,\n getServers: () => [],\n supportsStreaming: false,\n objectTypes: methodDefinition.objectTypes ?? [],\n flags: methodDefinition.flags?.metadata ?? {}\n };\n const errorObj = {\n method,\n called_with: argumentObj,\n message: `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`,\n executed_by: undefined,\n returned: undefined,\n status: undefined,\n };\n return Promise.reject(errorObj);\n }\n }\n const timeout = additionalOptions.methodResponseTimeoutMs;\n const additionalOptionsCopy = additionalOptions;\n const invokePromises = serversMethodMap.map((serversMethodPair) => {\n const invId = nanoid(10);\n const method = serversMethodPair.methods[0];\n const server = serversMethodPair.server;\n const invokePromise = this.protocol.client.invoke(invId, method, argumentObj, server, additionalOptionsCopy);\n return Promise.race([\n invokePromise,\n rejectAfter(timeout, invokePromise, {\n invocationId: invId,\n message: `Invocation timeout (${timeout} ms) reached for method name: ${method?.name}, target instance: ${JSON.stringify(server.instance)}, options: ${JSON.stringify(additionalOptionsCopy)}`,\n status: InvokeStatus.Error,\n })\n ]);\n });\n const invocationMessages = await Promise.all(invokePromises);\n const results = this.getInvocationResultObj(invocationMessages, methodDefinition, argumentObj);\n const allRejected = invocationMessages.every((result) => result.status === InvokeStatus.Error);\n if (allRejected) {\n return Promise.reject(results);\n }\n return results;\n };\n return promisify(getInvokePromise(), success, error);\n }\n getInvocationResultObj(invocationResults, method, calledWith) {\n const all_return_values = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Success)\n .reduce((allValues, currentValue) => {\n allValues = [\n ...allValues,\n {\n executed_by: currentValue.instance,\n returned: currentValue.result,\n called_with: calledWith,\n method,\n message: currentValue.message,\n status: currentValue.status,\n }\n ];\n return allValues;\n }, []);\n const all_errors = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Error)\n .reduce((allErrors, currError) => {\n allErrors = [\n ...allErrors,\n {\n executed_by: currError.instance,\n called_with: calledWith,\n name: method.name,\n message: currError.message,\n }\n ];\n return allErrors;\n }, []);\n const invResult = invocationResults[0];\n const result = {\n method,\n called_with: calledWith,\n returned: invResult.result,\n executed_by: invResult.instance,\n all_return_values,\n all_errors,\n message: invResult.message,\n status: invResult.status\n };\n return result;\n }\n tryToAwaitForMethods(methodDefinition, target, additionalOptions) {\n return new Promise((resolve, reject) => {\n if (additionalOptions.waitTimeoutMs === 0) {\n reject();\n return;\n }\n const delayStep = 500;\n let delayTillNow = 0;\n const retry = () => {\n delayTillNow += delayStep;\n const serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length > 0) {\n clearInterval(interval);\n resolve(serversMethodMap);\n }\n else if (delayTillNow >= (additionalOptions.waitTimeoutMs || 10000)) {\n clearInterval(interval);\n reject();\n return;\n }\n };\n const interval = setInterval(retry, delayStep);\n });\n }\n filterByTarget(target, serverMethodMap) {\n if (typeof target === \"string\") {\n if (target === \"all\") {\n return [...serverMethodMap];\n }\n else if (target === \"best\") {\n const localMachine = serverMethodMap\n .find((s) => s.server.instance.isLocal);\n if (localMachine) {\n return [localMachine];\n }\n if (serverMethodMap[0] !== undefined) {\n return [serverMethodMap[0]];\n }\n }\n else if (target === \"skipMine\") {\n return serverMethodMap.filter(({ server }) => server.instance.peerId !== this.instance.peerId);\n }\n }\n else {\n let targetArray;\n if (!Array.isArray(target)) {\n targetArray = [target];\n }\n else {\n targetArray = target;\n }\n const allServersMatching = targetArray.reduce((matches, filter) => {\n const myMatches = serverMethodMap.filter((serverMethodPair) => {\n return this.instanceMatch(filter, serverMethodPair.server.instance);\n });\n return matches.concat(myMatches);\n }, []);\n return allServersMatching;\n }\n return [];\n }\n instanceMatch(instanceFilter, instanceDefinition) {\n if (instanceFilter?.peerId && instanceFilter?.instance) {\n instanceFilter = { ...instanceFilter };\n delete instanceFilter.peerId;\n }\n return this.containsProps(instanceFilter, instanceDefinition);\n }\n methodMatch(methodFilter, methodDefinition) {\n return this.containsProps(methodFilter, methodDefinition);\n }\n containsProps(filter, repoMethod) {\n const filterProps = Object.keys(filter)\n .filter((prop) => {\n return filter[prop] !== undefined\n && filter[prop] !== null\n && typeof filter[prop] !== \"function\"\n && prop !== \"object_types\"\n && prop !== \"display_name\"\n && prop !== \"id\"\n && prop !== \"gatewayId\"\n && prop !== \"identifier\"\n && prop[0] !== \"_\";\n });\n return filterProps.every((prop) => {\n let isMatch;\n const filterValue = filter[prop];\n const repoMethodValue = repoMethod[prop];\n switch (prop) {\n case \"objectTypes\":\n isMatch = (filterValue || []).every((filterValueEl) => {\n return (repoMethodValue || []).includes(filterValueEl);\n });\n break;\n case \"flags\":\n isMatch = isSubset(repoMethodValue || {}, filterValue || {});\n break;\n default:\n isMatch = String(filterValue).toLowerCase() === String(repoMethodValue).toLowerCase();\n }\n return isMatch;\n });\n }\n getMethods(methodFilter) {\n if (methodFilter === undefined) {\n return this.repo.getMethods();\n }\n const methods = this.repo.getMethods().filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n return methods;\n }\n getMethodsForInstance(instanceFilter) {\n const allServers = this.repo.getServers();\n const matchingServers = allServers.filter((server) => {\n return this.instanceMatch(instanceFilter, server.instance);\n });\n if (matchingServers.length === 0) {\n return [];\n }\n let resultMethodsObject = {};\n if (matchingServers.length === 1) {\n resultMethodsObject = matchingServers[0].methods;\n }\n else {\n matchingServers.forEach((server) => {\n Object.keys(server.methods).forEach((methodKey) => {\n const method = server.methods[methodKey];\n resultMethodsObject[method.identifier] = method;\n });\n });\n }\n return Object.keys(resultMethodsObject)\n .map((key) => {\n return resultMethodsObject[key];\n });\n }\n getServers(methodFilter) {\n const servers = this.repo.getServers();\n if (methodFilter === undefined) {\n return servers.map((server) => {\n return { server, methods: [] };\n });\n }\n return servers.reduce((prev, current) => {\n const methodsForServer = Object.values(current.methods);\n const matchingMethods = methodsForServer.filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n if (matchingMethods.length > 0) {\n prev.push({ server: current, methods: matchingMethods });\n }\n return prev;\n }, []);\n }\n getServerMethodsByFilterAndTarget(methodFilter, target) {\n const serversMethodMap = this.getServers(methodFilter);\n return this.filterByTarget(target, serversMethodMap);\n }\n}\n\nclass ServerSubscription {\n protocol;\n repoMethod;\n subscription;\n constructor(protocol, repoMethod, subscription) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.subscription = subscription;\n }\n get stream() {\n if (!this.repoMethod.stream) {\n throw new Error(\"no stream\");\n }\n return this.repoMethod.stream;\n }\n get arguments() { return this.subscription.arguments || {}; }\n get branchKey() { return this.subscription.branchKey; }\n get instance() {\n if (!this.subscription.instance) {\n throw new Error(\"no instance\");\n }\n return this.subscription.instance;\n }\n close() {\n this.protocol.server.closeSingleSubscription(this.repoMethod, this.subscription);\n }\n push(data) {\n this.protocol.server.pushDataToSingle(this.repoMethod, this.subscription, data);\n }\n}\n\nclass Request {\n protocol;\n repoMethod;\n requestContext;\n arguments;\n instance;\n constructor(protocol, repoMethod, requestContext) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.requestContext = requestContext;\n this.arguments = requestContext.arguments;\n this.instance = requestContext.instance;\n }\n accept() {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, \"\");\n }\n acceptOnBranch(branch) {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, branch);\n }\n reject(reason) {\n this.protocol.server.rejectRequest(this.requestContext, this.repoMethod, reason);\n }\n}\n\nlet ServerStreaming$1 = class ServerStreaming {\n protocol;\n server;\n constructor(protocol, server) {\n this.protocol = protocol;\n this.server = server;\n protocol.server.onSubRequest((rc, rm) => this.handleSubRequest(rc, rm));\n protocol.server.onSubAdded((sub, rm) => this.handleSubAdded(sub, rm));\n protocol.server.onSubRemoved((sub, rm) => this.handleSubRemoved(sub, rm));\n }\n handleSubRequest(requestContext, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRequestHandler === \"function\")) {\n return;\n }\n const request = new Request(this.protocol, repoMethod, requestContext);\n repoMethod.streamCallbacks.subscriptionRequestHandler(request);\n }\n handleSubAdded(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionAddedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionAddedHandler(sub);\n }\n handleSubRemoved(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRemovedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionRemovedHandler(sub);\n }\n};\n\nclass ServerBranch {\n key;\n protocol;\n repoMethod;\n constructor(key, protocol, repoMethod) {\n this.key = key;\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n }\n subscriptions() {\n const subList = this.protocol.server.getSubscriptionList(this.repoMethod, this.key);\n return subList.map((sub) => {\n return new ServerSubscription(this.protocol, this.repoMethod, sub);\n });\n }\n close() {\n this.protocol.server.closeAllSubscriptions(this.repoMethod, this.key);\n }\n push(data) {\n this.protocol.server.pushData(this.repoMethod, data, [this.key]);\n }\n}\n\nclass ServerStream {\n _protocol;\n _repoMethod;\n _server;\n name;\n constructor(_protocol, _repoMethod, _server) {\n this._protocol = _protocol;\n this._repoMethod = _repoMethod;\n this._server = _server;\n this.name = this._repoMethod.definition.name;\n }\n branches(key) {\n const bList = this._protocol.server.getBranchList(this._repoMethod);\n if (key) {\n if (bList.indexOf(key) > -1) {\n return new ServerBranch(key, this._protocol, this._repoMethod);\n }\n return undefined;\n }\n else {\n return bList.map((branchKey) => {\n return new ServerBranch(branchKey, this._protocol, this._repoMethod);\n });\n }\n }\n branch(key) {\n return this.branches(key);\n }\n subscriptions() {\n const subList = this._protocol.server.getSubscriptionList(this._repoMethod);\n return subList.map((sub) => {\n return new ServerSubscription(this._protocol, this._repoMethod, sub);\n });\n }\n get definition() {\n const def2 = this._repoMethod.definition;\n return {\n accepts: def2.accepts,\n description: def2.description,\n displayName: def2.displayName,\n name: def2.name,\n objectTypes: def2.objectTypes,\n returns: def2.returns,\n supportsStreaming: def2.supportsStreaming,\n flags: def2.flags?.metadata,\n };\n }\n close() {\n this._protocol.server.closeAllSubscriptions(this._repoMethod);\n this._server.unregister(this._repoMethod.definition, true);\n }\n push(data, branches) {\n if (typeof branches !== \"string\" && !Array.isArray(branches) && branches !== undefined) {\n throw new Error(\"invalid branches should be string or string array\");\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n this._protocol.server.pushData(this._repoMethod, data, branches);\n }\n updateRepoMethod(repoMethod) {\n this._repoMethod = repoMethod;\n }\n}\n\nclass Server {\n protocol;\n serverRepository;\n streaming;\n invocations = 0;\n currentlyUnregistering = {};\n constructor(protocol, serverRepository) {\n this.protocol = protocol;\n this.serverRepository = serverRepository;\n this.streaming = new ServerStreaming$1(protocol, this);\n this.protocol.server.onInvoked(this.onMethodInvoked.bind(this));\n }\n createStream(streamDef, callbacks, successCallback, errorCallback, existingStream) {\n const promise = new Promise((resolve, reject) => {\n if (!streamDef) {\n reject(\"The stream name must be unique! Please, provide either a unique string for a stream name to “glue.interop.createStream()” or a “methodDefinition” object with a unique “name” property for the stream.\");\n return;\n }\n let streamMethodDefinition;\n if (typeof streamDef === \"string\") {\n streamMethodDefinition = { name: \"\" + streamDef };\n }\n else {\n streamMethodDefinition = { ...streamDef };\n }\n if (!streamMethodDefinition.name) {\n return reject(`The “name” property is required for the “streamDefinition” object and must be unique. Stream definition: ${JSON.stringify(streamMethodDefinition)}`);\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === streamMethodDefinition.name);\n if (nameAlreadyExists) {\n return reject(`A stream with the name \"${streamMethodDefinition.name}\" already exists! Please, provide a unique name for the stream.`);\n }\n streamMethodDefinition.supportsStreaming = true;\n if (!callbacks) {\n callbacks = {};\n }\n if (typeof callbacks.subscriptionRequestHandler !== \"function\") {\n callbacks.subscriptionRequestHandler = (request) => {\n request.accept();\n };\n }\n const repoMethod = this.serverRepository.add({\n definition: streamMethodDefinition,\n streamCallbacks: callbacks,\n protocolState: {},\n });\n this.protocol.server.createStream(repoMethod)\n .then(() => {\n let streamUserObject;\n if (existingStream) {\n streamUserObject = existingStream;\n existingStream.updateRepoMethod(repoMethod);\n }\n else {\n streamUserObject = new ServerStream(this.protocol, repoMethod, this);\n }\n repoMethod.stream = streamUserObject;\n resolve(streamUserObject);\n })\n .catch((err) => {\n if (repoMethod.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n reject(err);\n });\n });\n return promisify(promise, successCallback, errorCallback);\n }\n register(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallbackFunction = async (context, resultCallback) => {\n try {\n const result = callback(context.args, context.instance);\n if (result && typeof result.then === \"function\") {\n const resultValue = await result;\n resultCallback(undefined, resultValue);\n }\n else {\n resultCallback(undefined, result);\n }\n }\n catch (e) {\n resultCallback(e ?? \"\", e ?? \"\");\n }\n };\n wrappedCallbackFunction.userCallback = callback;\n return this.registerCore(methodDefinition, wrappedCallbackFunction);\n }\n registerAsync(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallback = async (context, resultCallback) => {\n try {\n let resultCalled = false;\n const success = (result) => {\n if (!resultCalled) {\n resultCallback(undefined, result);\n }\n resultCalled = true;\n };\n const error = (e) => {\n if (!resultCalled) {\n if (!e) {\n e = \"\";\n }\n resultCallback(e, e);\n }\n resultCalled = true;\n };\n const methodResult = callback(context.args, context.instance, success, error);\n if (methodResult && typeof methodResult.then === \"function\") {\n methodResult\n .then(success)\n .catch(error);\n }\n }\n catch (e) {\n resultCallback(e, undefined);\n }\n };\n wrappedCallback.userCallbackAsync = callback;\n return this.registerCore(methodDefinition, wrappedCallback);\n }\n async unregister(methodFilter, forStream = false) {\n if (methodFilter === undefined) {\n return Promise.reject(\"Please, provide either a unique string for a name or an object containing a “name” property.\");\n }\n if (typeof methodFilter === \"function\") {\n await this.unregisterWithPredicate(methodFilter, forStream);\n return;\n }\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = methodFilter;\n }\n if (methodDefinition.name === undefined) {\n return Promise.reject(\"Method name is required. Cannot find a method if the method name is undefined!\");\n }\n const methodToBeRemoved = this.serverRepository.getList().find((serverMethod) => {\n return serverMethod.definition.name === methodDefinition.name\n && (serverMethod.definition.supportsStreaming || false) === forStream;\n });\n if (!methodToBeRemoved) {\n return Promise.reject(`Method with a name \"${methodDefinition.name}\" does not exist or is not registered by your application!`);\n }\n await this.removeMethodsOrStreams([methodToBeRemoved]);\n }\n async unregisterWithPredicate(filterPredicate, forStream) {\n const methodsOrStreamsToRemove = this.serverRepository.getList()\n .filter((sm) => filterPredicate(sm.definition))\n .filter((serverMethod) => (serverMethod.definition.supportsStreaming || false) === forStream);\n if (!methodsOrStreamsToRemove || methodsOrStreamsToRemove.length === 0) {\n return Promise.reject(`Could not find a ${forStream ? \"stream\" : \"method\"} matching the specified condition!`);\n }\n await this.removeMethodsOrStreams(methodsOrStreamsToRemove);\n }\n removeMethodsOrStreams(methodsToRemove) {\n const methodUnregPromises = [];\n methodsToRemove.forEach((method) => {\n const promise = this.protocol.server.unregister(method)\n .then(() => {\n if (method.repoId) {\n this.serverRepository.remove(method.repoId);\n }\n });\n methodUnregPromises.push(promise);\n this.addAsCurrentlyUnregistering(method.definition.name, promise);\n });\n return Promise.all(methodUnregPromises);\n }\n async addAsCurrentlyUnregistering(methodName, promise) {\n const timeout = new Promise((resolve) => setTimeout(resolve, 5000));\n this.currentlyUnregistering[methodName] = Promise.race([promise, timeout]).then(() => {\n delete this.currentlyUnregistering[methodName];\n });\n }\n async registerCore(method, theFunction) {\n let methodDefinition;\n if (typeof method === \"string\") {\n methodDefinition = { name: \"\" + method };\n }\n else {\n methodDefinition = { ...method };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Please, provide a (unique) string value for the “name” property in the “methodDefinition” object: ${JSON.stringify(method)}`);\n }\n const unregisterInProgress = this.currentlyUnregistering[methodDefinition.name];\n if (typeof unregisterInProgress !== \"undefined\") {\n await unregisterInProgress;\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === methodDefinition.name);\n if (nameAlreadyExists) {\n return Promise.reject(`A method with the name \"${methodDefinition.name}\" already exists! Please, provide a unique name for the method.`);\n }\n if (methodDefinition.supportsStreaming) {\n return Promise.reject(`When you create methods with “glue.interop.register()” or “glue.interop.registerAsync()” the property “supportsStreaming” cannot be “true”. If you want “${methodDefinition.name}” to be a stream, please use the “glue.interop.createStream()” method.`);\n }\n const repoMethod = this.serverRepository.add({\n definition: methodDefinition,\n theFunction,\n protocolState: {},\n });\n return this.protocol.server.register(repoMethod)\n .catch((err) => {\n if (repoMethod?.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n throw err;\n });\n }\n onMethodInvoked(methodToExecute, invocationId, invocationArgs) {\n if (!methodToExecute || !methodToExecute.theFunction) {\n return;\n }\n methodToExecute.theFunction(invocationArgs, (err, result) => {\n if (err !== undefined && err !== null) {\n if (err.message && typeof err.message === \"string\") {\n err = err.message;\n }\n else if (typeof err !== \"string\") {\n try {\n err = JSON.stringify(err);\n }\n catch (unStrException) {\n err = `un-stringifyable error in onMethodInvoked! Top level prop names: ${Object.keys(err)}`;\n }\n }\n }\n if (!result) {\n result = {};\n }\n else if (typeof result !== \"object\" || Array.isArray(result)) {\n result = { _value: result };\n }\n this.protocol.server.methodInvocationResult(methodToExecute, invocationId, err, result);\n });\n }\n}\n\nclass InstanceWrapper {\n wrapped = {};\n constructor(API, instance, connection) {\n this.wrapped.getMethods = function () {\n return API.methodsForInstance(this);\n };\n this.wrapped.getStreams = function () {\n return API.methodsForInstance(this).filter((m) => m.supportsStreaming);\n };\n if (instance) {\n this.refreshWrappedObject(instance);\n }\n if (connection) {\n connection.loggedIn(() => {\n this.refresh(connection);\n });\n this.refresh(connection);\n }\n }\n unwrap() {\n return this.wrapped;\n }\n refresh(connection) {\n if (!connection) {\n return;\n }\n const resolvedIdentity = connection?.resolvedIdentity;\n const instance = Object.assign({}, resolvedIdentity ?? {}, { peerId: connection?.peerId });\n this.refreshWrappedObject(instance);\n }\n refreshWrappedObject(resolvedIdentity) {\n Object.keys(resolvedIdentity).forEach((key) => {\n this.wrapped[key] = resolvedIdentity[key];\n });\n this.wrapped.user = resolvedIdentity.user;\n this.wrapped.instance = resolvedIdentity.instance;\n this.wrapped.application = resolvedIdentity.application ?? nanoid(10);\n this.wrapped.applicationName = resolvedIdentity.applicationName;\n this.wrapped.pid = resolvedIdentity.pid ?? resolvedIdentity.process ?? Math.floor(Math.random() * 10000000000);\n this.wrapped.machine = resolvedIdentity.machine;\n this.wrapped.environment = resolvedIdentity.environment;\n this.wrapped.region = resolvedIdentity.region;\n this.wrapped.windowId = resolvedIdentity.windowId;\n this.wrapped.isLocal = resolvedIdentity.isLocal ?? true;\n this.wrapped.api = resolvedIdentity.api;\n this.wrapped.service = resolvedIdentity.service;\n this.wrapped.peerId = resolvedIdentity.peerId;\n }\n}\n\nconst hideMethodSystemFlags = (method) => {\n return {\n ...method,\n flags: method.flags.metadata || {}\n };\n};\nclass ClientRepository {\n logger;\n API;\n servers = {};\n myServer;\n methodsCount = {};\n callbacks = CallbackRegistryFactory();\n constructor(logger, API) {\n this.logger = logger;\n this.API = API;\n const peerId = this.API.instance.peerId;\n this.myServer = {\n id: peerId,\n methods: {},\n instance: this.API.instance,\n wrapper: this.API.unwrappedInstance,\n };\n this.servers[peerId] = this.myServer;\n }\n addServer(info, serverId) {\n this.logger.debug(`adding server ${serverId}`);\n const current = this.servers[serverId];\n if (current) {\n return current.id;\n }\n const wrapper = new InstanceWrapper(this.API, info);\n const serverEntry = {\n id: serverId,\n methods: {},\n instance: wrapper.unwrap(),\n wrapper,\n };\n this.servers[serverId] = serverEntry;\n this.callbacks.execute(\"onServerAdded\", serverEntry.instance);\n return serverId;\n }\n removeServerById(id, reason) {\n const server = this.servers[id];\n if (!server) {\n this.logger.warn(`not aware of server ${id}, my state ${JSON.stringify(Object.keys(this.servers))}`);\n return;\n }\n else {\n this.logger.debug(`removing server ${id}`);\n }\n Object.keys(server.methods).forEach((methodId) => {\n this.removeServerMethod(id, methodId);\n });\n delete this.servers[id];\n this.callbacks.execute(\"onServerRemoved\", server.instance, reason);\n }\n addServerMethod(serverId, method) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n if (server.methods[method.id]) {\n return;\n }\n const identifier = this.createMethodIdentifier(method);\n const that = this;\n const methodDefinition = {\n identifier,\n gatewayId: method.id,\n name: method.name,\n displayName: method.display_name,\n description: method.description,\n version: method.version,\n objectTypes: method.object_types || [],\n accepts: method.input_signature,\n returns: method.result_signature,\n supportsStreaming: typeof method.flags !== \"undefined\" ? method.flags.streaming : false,\n flags: method.flags ?? {},\n getServers: () => {\n return that.getServersByMethod(identifier);\n }\n };\n methodDefinition.object_types = methodDefinition.objectTypes;\n methodDefinition.display_name = methodDefinition.displayName;\n methodDefinition.version = methodDefinition.version;\n server.methods[method.id] = methodDefinition;\n const clientMethodDefinition = hideMethodSystemFlags(methodDefinition);\n if (!this.methodsCount[identifier]) {\n this.methodsCount[identifier] = 0;\n this.callbacks.execute(\"onMethodAdded\", clientMethodDefinition);\n }\n this.methodsCount[identifier] = this.methodsCount[identifier] + 1;\n this.callbacks.execute(\"onServerMethodAdded\", server.instance, clientMethodDefinition);\n return methodDefinition;\n }\n removeServerMethod(serverId, methodId) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n const method = server.methods[methodId];\n delete server.methods[methodId];\n const clientMethodDefinition = hideMethodSystemFlags(method);\n this.methodsCount[method.identifier] = this.methodsCount[method.identifier] - 1;\n if (this.methodsCount[method.identifier] === 0) {\n this.callbacks.execute(\"onMethodRemoved\", clientMethodDefinition);\n }\n this.callbacks.execute(\"onServerMethodRemoved\", server.instance, clientMethodDefinition);\n }\n getMethods() {\n return this.extractMethodsFromServers(Object.values(this.servers)).map(hideMethodSystemFlags);\n }\n getServers() {\n return Object.values(this.servers).map(this.hideServerMethodSystemFlags);\n }\n onServerAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerAdded\", callback);\n const serversWithMethodsToReplay = this.getServers().map((s) => s.instance);\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, serversWithMethodsToReplay, callback);\n }\n onMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodAdded\", callback);\n const methodsToReplay = this.getMethods();\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, methodsToReplay, callback);\n }\n onServerMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodAdded\", callback);\n let unsubCalled = false;\n const servers = this.getServers();\n setTimeout(() => {\n servers.forEach((server) => {\n const methods = server.methods;\n Object.keys(methods).forEach((methodId) => {\n if (!unsubCalled) {\n callback(server.instance, methods[methodId]);\n }\n });\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n onMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n getServerById(id) {\n const server = this.servers[id];\n if (!server) {\n return undefined;\n }\n return this.hideServerMethodSystemFlags(this.servers[id]);\n }\n reset() {\n Object.keys(this.servers).forEach((key) => {\n this.removeServerById(key, \"reset\");\n });\n this.servers = {\n [this.myServer.id]: this.myServer\n };\n this.methodsCount = {};\n }\n createMethodIdentifier(methodInfo) {\n const accepts = methodInfo.input_signature ?? \"\";\n const returns = methodInfo.result_signature ?? \"\";\n return (methodInfo.name + accepts + returns).toLowerCase();\n }\n getServersByMethod(identifier) {\n const allServers = [];\n Object.values(this.servers).forEach((server) => {\n Object.values(server.methods).forEach((method) => {\n if (method.identifier === identifier) {\n allServers.push(server.instance);\n }\n });\n });\n return allServers;\n }\n returnUnsubWithDelayedReplay(unsubscribeFunc, collectionToReplay, callback) {\n let unsubCalled = false;\n setTimeout(() => {\n collectionToReplay.forEach((item) => {\n if (!unsubCalled) {\n callback(item);\n }\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n hideServerMethodSystemFlags(server) {\n const clientMethods = {};\n Object.entries(server.methods).forEach(([name, method]) => {\n clientMethods[name] = hideMethodSystemFlags(method);\n });\n return {\n ...server,\n methods: clientMethods\n };\n }\n extractMethodsFromServers(servers) {\n const methods = Object.values(servers).reduce((clientMethods, server) => {\n return [...clientMethods, ...Object.values(server.methods)];\n }, []);\n return methods;\n }\n}\n\nclass ServerRepository {\n nextId = 0;\n methods = [];\n add(method) {\n method.repoId = String(this.nextId);\n this.nextId += 1;\n this.methods.push(method);\n return method;\n }\n remove(repoId) {\n if (typeof repoId !== \"string\") {\n return new TypeError(\"Expecting a string\");\n }\n this.methods = this.methods.filter((m) => {\n return m.repoId !== repoId;\n });\n }\n getById(id) {\n if (typeof id !== \"string\") {\n return undefined;\n }\n return this.methods.find((m) => {\n return m.repoId === id;\n });\n }\n getList() {\n return this.methods.map((m) => m);\n }\n length() {\n return this.methods.length;\n }\n reset() {\n this.methods = [];\n }\n}\n\nconst SUBSCRIPTION_REQUEST = \"onSubscriptionRequest\";\nconst SUBSCRIPTION_ADDED = \"onSubscriptionAdded\";\nconst SUBSCRIPTION_REMOVED = \"onSubscriptionRemoved\";\nclass ServerStreaming {\n session;\n repository;\n serverRepository;\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\n session.on(\"add-interest\", (msg) => {\n this.handleAddInterest(msg);\n });\n session.on(\"remove-interest\", (msg) => {\n this.handleRemoveInterest(msg);\n });\n }\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\n if (typeof branch !== \"string\") {\n branch = \"\";\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\n }\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n throw new TypeError(\"The streaming method is missing its branches.\");\n }\n const streamId = this.getStreamId(streamingMethod, branch);\n const key = requestContext.msg.subscription_id;\n const subscription = {\n id: key,\n arguments: requestContext.arguments,\n instance: requestContext.instance,\n branchKey: branch,\n streamId,\n subscribeMsg: requestContext.msg,\n };\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\n this.session.sendFireAndForget({\n type: \"accepted\",\n subscription_id: key,\n stream_id: streamId,\n });\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\n }\n rejectRequest(requestContext, streamingMethod, reason) {\n if (typeof reason !== \"string\") {\n reason = \"\";\n }\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\n }\n pushData(streamingMethod, data, branches) {\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n return;\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n if (typeof branches === \"string\") {\n branches = [branches];\n }\n else if (!Array.isArray(branches) || branches.length <= 0) {\n branches = [];\n }\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\n .filter((br) => {\n if (!branches || branches.length === 0) {\n return true;\n }\n return branches.indexOf(br.key) >= 0;\n }).map((br) => {\n return br.streamId;\n });\n streamIdList.forEach((streamId) => {\n const publishMessage = {\n type: \"publish\",\n stream_id: streamId,\n data,\n };\n this.session.sendFireAndForget(publishMessage);\n });\n }\n pushDataToSingle(method, subscription, data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n const postMessage = {\n type: \"post\",\n subscription_id: subscription.id,\n data,\n };\n this.session.sendFireAndForget(postMessage);\n }\n closeSingleSubscription(streamingMethod, subscription) {\n if (streamingMethod.protocolState.subscriptionsMap) {\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\n }\n const dropSubscriptionMessage = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping a single subscription\",\n };\n this.session.sendFireAndForget(dropSubscriptionMessage);\n subscription.instance;\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n closeMultipleSubscriptions(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n let subscriptionsToClose = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey === \"string\") {\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n subscriptionsToClose.forEach((subscription) => {\n delete subscriptionsMap[subscription.id];\n const drop = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\n };\n this.session.sendFireAndForget(drop);\n });\n }\n getSubscriptionList(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n let subscriptions = [];\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey !== \"string\") {\n subscriptions = allSubscriptions;\n }\n else {\n subscriptions = allSubscriptions.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n return subscriptions;\n }\n getBranchList(streamingMethod) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n const result = [];\n allSubscriptions.forEach((sub) => {\n let branch = \"\";\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\n branch = sub.branchKey;\n }\n if (result.indexOf(branch) === -1) {\n result.push(branch);\n }\n });\n return result;\n }\n onSubAdded(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\n }\n onSubRequest(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\n }\n onSubRemoved(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\n }\n handleRemoveInterest(msg) {\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (typeof msg.subscription_id !== \"string\" ||\n typeof streamingMethod !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\n return;\n }\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\n this.callbacks.add(eventName, handlerFunc);\n }\n getNextStreamId() {\n return this.nextStreamId++ + \"\";\n }\n handleAddInterest(msg) {\n const caller = this.repository.getServerById(msg.caller_id);\n const instance = caller?.instance ?? {};\n const requestContext = {\n msg,\n arguments: msg.arguments_kv || {},\n instance,\n };\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (streamingMethod === undefined) {\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\n return;\n }\n if (streamingMethod.protocolState.subscriptionsMap &&\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\n return;\n }\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\n }\n sendSubscriptionFailed(reason, subscriptionId) {\n const errorMessage = {\n type: \"error\",\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\n reason,\n request_id: subscriptionId,\n };\n this.session.sendFireAndForget(errorMessage);\n }\n getStreamId(streamingMethod, branchKey) {\n if (typeof branchKey !== \"string\") {\n branchKey = \"\";\n }\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\n }\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\n return branch.key === branchKey;\n })[0];\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\n if (typeof streamId !== \"string\" || streamId === \"\") {\n streamId = this.getNextStreamId();\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\n }\n return streamId;\n }\n}\n\nclass ServerProtocol {\n session;\n clientRepository;\n serverRepository;\n logger;\n callbacks = CallbackRegistryFactory();\n streaming;\n constructor(session, clientRepository, serverRepository, logger) {\n this.session = session;\n this.clientRepository = clientRepository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository);\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\n }\n createStream(repoMethod) {\n repoMethod.protocolState.subscriptionsMap = {};\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\n return this.register(repoMethod, true);\n }\n register(repoMethod, isStreaming) {\n const methodDef = repoMethod.definition;\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\n const registerMsg = {\n type: \"register\",\n methods: [{\n id: repoMethod.repoId,\n name: methodDef.name,\n display_name: methodDef.displayName,\n description: methodDef.description,\n version: methodDef.version,\n flags,\n object_types: methodDef.objectTypes || methodDef.object_types,\n input_signature: methodDef.accepts,\n result_signature: methodDef.returns,\n restrictions: undefined,\n }],\n };\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\n .then(() => {\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\n })\n .catch((msg) => {\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\n throw msg;\n });\n }\n onInvoked(callback) {\n this.callbacks.add(\"onInvoked\", callback);\n }\n methodInvocationResult(method, invocationId, err, result) {\n let msg;\n if (err || err === \"\") {\n msg = {\n type: \"error\",\n request_id: invocationId,\n reason_uri: \"agm.errors.client_error\",\n reason: err,\n context: result,\n peer_id: undefined,\n };\n }\n else {\n msg = {\n type: \"yield\",\n invocation_id: invocationId,\n peer_id: this.session.peerId,\n result,\n request_id: undefined,\n };\n }\n this.session.sendFireAndForget(msg);\n }\n async unregister(method) {\n const msg = {\n type: \"unregister\",\n methods: [method.repoId],\n };\n await this.session.send(msg);\n }\n getBranchList(method) {\n return this.streaming.getBranchList(method);\n }\n getSubscriptionList(method, branchKey) {\n return this.streaming.getSubscriptionList(method, branchKey);\n }\n closeAllSubscriptions(method, branchKey) {\n this.streaming.closeMultipleSubscriptions(method, branchKey);\n }\n pushData(method, data, branches) {\n this.streaming.pushData(method, data, branches);\n }\n pushDataToSingle(method, subscription, data) {\n this.streaming.pushDataToSingle(method, subscription, data);\n }\n closeSingleSubscription(method, subscription) {\n this.streaming.closeSingleSubscription(method, subscription);\n }\n acceptRequestOnBranch(requestContext, method, branch) {\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\n }\n rejectRequest(requestContext, method, reason) {\n this.streaming.rejectRequest(requestContext, method, reason);\n }\n onSubRequest(callback) {\n this.streaming.onSubRequest(callback);\n }\n onSubAdded(callback) {\n this.streaming.onSubAdded(callback);\n }\n onSubRemoved(callback) {\n this.streaming.onSubRemoved(callback);\n }\n handleInvokeMessage(msg) {\n const invocationId = msg.invocation_id;\n const callerId = msg.caller_id;\n const methodId = msg.method_id;\n const args = msg.arguments_kv;\n const methodList = this.serverRepository.getList();\n const method = methodList.filter((m) => {\n return m.repoId === methodId;\n })[0];\n if (method === undefined) {\n return;\n }\n const client = this.clientRepository.getServerById(callerId)?.instance;\n const invocationArgs = { args, instance: client };\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\n }\n}\n\nclass UserSubscription {\n repository;\n subscriptionData;\n get requestArguments() {\n return this.subscriptionData.params.arguments || {};\n }\n get servers() {\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\n if (pair.subscriptionId) {\n const server = this.repository.getServerById(pair.serverId)?.instance;\n if (server) {\n servers.push(server);\n }\n }\n return servers;\n }, []);\n }\n get serverInstance() {\n return this.servers[0];\n }\n get stream() {\n return this.subscriptionData.method;\n }\n constructor(repository, subscriptionData) {\n this.repository = repository;\n this.subscriptionData = subscriptionData;\n }\n onData(dataCallback) {\n if (typeof dataCallback !== \"function\") {\n throw new TypeError(\"The data callback must be a function.\");\n }\n this.subscriptionData.handlers.onData.push(dataCallback);\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\n this.subscriptionData.queued.data.forEach((dataItem) => {\n dataCallback(dataItem);\n });\n }\n }\n onClosed(closedCallback) {\n if (typeof closedCallback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onClosed.push(closedCallback);\n }\n onFailed(callback) {\n }\n onConnected(callback) {\n if (typeof callback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onConnected.push(callback);\n }\n close() {\n this.subscriptionData.close();\n }\n setNewSubscription(newSub) {\n this.subscriptionData = newSub;\n }\n}\n\nclass TimedCache {\n config;\n cache = [];\n timeoutIds = [];\n constructor(config) {\n this.config = config;\n }\n add(element) {\n const id = nanoid(10);\n this.cache.push({ id, element });\n const timeoutId = setTimeout(() => {\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\n if (elementIdx < 0) {\n return;\n }\n this.cache.splice(elementIdx, 1);\n }, this.config.ELEMENT_TTL_MS);\n this.timeoutIds.push(timeoutId);\n }\n flush() {\n const elements = this.cache.map((entry) => entry.element);\n this.timeoutIds.forEach((id) => clearInterval(id));\n this.cache = [];\n this.timeoutIds = [];\n return elements;\n }\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\nconst STATUS_SUBSCRIBED = \"subscribed\";\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\nclass ClientStreaming {\n session;\n repository;\n logger;\n subscriptionsList = {};\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\n subscriptionIdToLocalKeyMap = {};\n nextSubLocalKey = 0;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"subscribed\", this.handleSubscribed);\n session.on(\"event\", this.handleEventData);\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\n }\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\n if (targetServers.length === 0) {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\n });\n return;\n }\n const subLocalKey = this.getNextSubscriptionLocalKey();\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\n if (typeof pendingSub !== \"object\") {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\n });\n return;\n }\n targetServers.forEach((target) => {\n const serverId = target.server.id;\n const method = target.methods.find((m) => m.name === streamingMethod.name);\n if (!method) {\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\n return;\n }\n pendingSub.trackedServers.push({\n serverId,\n subscriptionId: undefined,\n });\n const msg = {\n type: \"subscribe\",\n server_id: serverId,\n method_id: method.gatewayId,\n arguments_kv: params.arguments,\n };\n this.session.send(msg, { serverId, subLocalKey })\n .then((m) => this.handleSubscribed(m))\n .catch((err) => this.handleErrorSubscribing(err));\n });\n }\n drainSubscriptions() {\n const existing = Object.values(this.subscriptionsList);\n this.subscriptionsList = {};\n this.subscriptionIdToLocalKeyMap = {};\n return existing;\n }\n drainSubscriptionsCache() {\n return this.timedCache.flush();\n }\n getNextSubscriptionLocalKey() {\n const current = this.nextSubLocalKey;\n this.nextSubLocalKey += 1;\n return current;\n }\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\n const subsInfo = {\n localKey: subLocalKey,\n status: STATUS_AWAITING_ACCEPT,\n method,\n params,\n success,\n error,\n trackedServers: [],\n handlers: {\n onData: existingSub?.handlers.onData || [],\n onClosed: existingSub?.handlers.onClosed || [],\n onConnected: existingSub?.handlers.onConnected || [],\n },\n queued: {\n data: [],\n closers: [],\n },\n timeoutId: undefined,\n close: () => this.closeSubscription(subLocalKey),\n subscription: existingSub?.subscription\n };\n if (!existingSub) {\n if (params.onData) {\n subsInfo.handlers.onData.push(params.onData);\n }\n if (params.onClosed) {\n subsInfo.handlers.onClosed.push(params.onClosed);\n }\n if (params.onConnected) {\n subsInfo.handlers.onConnected.push(params.onConnected);\n }\n }\n this.subscriptionsList[subLocalKey] = subsInfo;\n subsInfo.timeoutId = setTimeout(() => {\n if (this.subscriptionsList[subLocalKey] === undefined) {\n return;\n }\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n error({\n method,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\n });\n delete this.subscriptionsList[subLocalKey];\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return (typeof server.subscriptionId !== \"undefined\");\n });\n delete pendingSub.timeoutId;\n if (pendingSub.trackedServers.length <= 0) {\n this.callOnClosedHandlers(pendingSub);\n delete this.subscriptionsList[subLocalKey];\n }\n }\n }, timeout);\n return subsInfo;\n }\n handleErrorSubscribing = (errorResponse) => {\n const tag = errorResponse._tag;\n const subLocalKey = tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return server.serverId !== tag.serverId;\n });\n if (pendingSub.trackedServers.length <= 0) {\n clearTimeout(pendingSub.timeoutId);\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\n ' Publisher said \"' + errorResponse.reason + '\".' :\n \" No reason given.\";\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\n JSON.stringify(pendingSub.params.arguments) :\n \"{}\";\n pendingSub.error({\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\n called_with: pendingSub.params.arguments,\n method: pendingSub.method,\n });\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\n this.callOnClosedHandlers(pendingSub);\n }\n delete this.subscriptionsList[subLocalKey];\n }\n };\n handleSubscribed = (msg) => {\n const subLocalKey = msg._tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n const serverId = msg._tag.serverId;\n const acceptingServer = pendingSub.trackedServers\n .filter((server) => {\n return server.serverId === serverId;\n })[0];\n if (typeof acceptingServer !== \"object\") {\n return;\n }\n acceptingServer.subscriptionId = msg.subscription_id;\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\n pendingSub.status = STATUS_SUBSCRIBED;\n if (isFirstResponse) {\n let reconnect = false;\n let sub = pendingSub.subscription;\n if (sub) {\n sub.setNewSubscription(pendingSub);\n pendingSub.success(sub);\n reconnect = true;\n }\n else {\n sub = new UserSubscription(this.repository, pendingSub);\n pendingSub.subscription = sub;\n pendingSub.success(sub);\n }\n for (const handler of pendingSub.handlers.onConnected) {\n try {\n handler(sub.serverInstance, reconnect);\n }\n catch (e) {\n }\n }\n }\n };\n handleEventData = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const trackedServersFound = subscription.trackedServers.filter((s) => {\n return s.subscriptionId === msg.subscription_id;\n });\n if (trackedServersFound.length !== 1) {\n return;\n }\n const isPrivateData = msg.oob;\n const sendingServerId = trackedServersFound[0].serverId;\n const server = this.repository.getServerById(sendingServerId);\n const receivedStreamData = () => {\n return {\n data: msg.data,\n server: server?.instance ?? {},\n requestArguments: subscription.params.arguments,\n message: undefined,\n private: isPrivateData,\n };\n };\n const onDataHandlers = subscription.handlers.onData;\n const queuedData = subscription.queued.data;\n if (onDataHandlers.length > 0) {\n onDataHandlers.forEach((callback) => {\n if (typeof callback === \"function\") {\n callback(receivedStreamData());\n }\n });\n }\n else {\n queuedData.push(receivedStreamData());\n }\n };\n handleSubscriptionCancelled = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const expectedNewLength = subscription.trackedServers.length - 1;\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\n if (server.subscriptionId === msg.subscription_id) {\n subscription.queued.closers.push(server.serverId);\n return false;\n }\n else {\n return true;\n }\n });\n if (subscription.trackedServers.length !== expectedNewLength) {\n return;\n }\n if (subscription.trackedServers.length <= 0) {\n this.timedCache.add(subscription);\n clearTimeout(subscription.timeoutId);\n this.callOnClosedHandlers(subscription);\n delete this.subscriptionsList[subLocalKey];\n }\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n };\n callOnClosedHandlers(subscription, reason) {\n const closersCount = subscription.queued.closers.length;\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\n let closingServer;\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\n }\n subscription.handlers.onClosed.forEach((callback) => {\n if (typeof callback !== \"function\") {\n return;\n }\n callback({\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\n requestArguments: subscription.params.arguments || {},\n server: closingServer,\n stream: subscription.method,\n });\n });\n }\n closeSubscription(subLocalKey) {\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n subscription.trackedServers.forEach((server) => {\n if (typeof server.subscriptionId === \"undefined\") {\n return;\n }\n subscription.queued.closers.push(server.serverId);\n this.session.sendFireAndForget({\n type: \"unsubscribe\",\n subscription_id: server.subscriptionId,\n reason_uri: \"\",\n reason: ON_CLOSE_MSG_CLIENT_INIT,\n });\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\n });\n subscription.trackedServers = [];\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\n delete this.subscriptionsList[subLocalKey];\n }\n}\n\nclass ClientProtocol {\n session;\n repository;\n logger;\n streaming;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\n this.streaming = new ClientStreaming(session, repository, logger);\n }\n subscribe(stream, options, targetServers, success, error, existingSub) {\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\n }\n invoke(id, method, args, target) {\n const serverId = target.id;\n const methodId = method.gatewayId;\n const msg = {\n type: \"call\",\n server_id: serverId,\n method_id: methodId,\n arguments_kv: args,\n };\n return this.session.send(msg, { invocationId: id, serverId })\n .then((m) => this.handleResultMessage(m))\n .catch((err) => this.handleInvocationError(err));\n }\n drainSubscriptions() {\n return this.streaming.drainSubscriptions();\n }\n drainSubscriptionsCache() {\n return this.streaming.drainSubscriptionsCache();\n }\n handlePeerAdded(msg) {\n const newPeerId = msg.new_peer_id;\n const remoteId = msg.identity;\n const isLocal = msg.meta ? msg.meta.local : true;\n const pid = Number(remoteId.process);\n const serverInfo = {\n machine: remoteId.machine,\n pid: isNaN(pid) ? remoteId.process : pid,\n instance: remoteId.instance,\n application: remoteId.application,\n applicationName: remoteId.applicationName,\n environment: remoteId.environment,\n region: remoteId.region,\n user: remoteId.user,\n windowId: remoteId.windowId,\n peerId: newPeerId,\n api: remoteId.api,\n isLocal\n };\n this.repository.addServer(serverInfo, newPeerId);\n }\n handlePeerRemoved(msg) {\n const removedPeerId = msg.removed_id;\n const reason = msg.reason;\n this.repository.removeServerById(removedPeerId, reason);\n }\n handleMethodsAddedMessage(msg) {\n const serverId = msg.server_id;\n const methods = msg.methods;\n methods.forEach((method) => {\n this.repository.addServerMethod(serverId, method);\n });\n }\n handleMethodsRemovedMessage(msg) {\n const serverId = msg.server_id;\n const methodIdList = msg.methods;\n const server = this.repository.getServerById(serverId);\n if (server) {\n const serverMethodKeys = Object.keys(server.methods);\n serverMethodKeys.forEach((methodKey) => {\n const method = server.methods[methodKey];\n if (methodIdList.indexOf(method.gatewayId) > -1) {\n this.repository.removeServerMethod(serverId, methodKey);\n }\n });\n }\n }\n handleResultMessage(msg) {\n const invocationId = msg._tag.invocationId;\n const result = msg.result;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n return {\n invocationId,\n result,\n instance: server?.instance,\n status: InvokeStatus.Success,\n message: \"\"\n };\n }\n handleInvocationError(msg) {\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\n if (\"_tag\" in msg) {\n const invocationId = msg._tag.invocationId;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n const message = msg.reason;\n const context = msg.context;\n return {\n invocationId,\n result: context,\n instance: server?.instance,\n status: InvokeStatus.Error,\n message\n };\n }\n else {\n return {\n invocationId: \"\",\n message: msg.message,\n status: InvokeStatus.Error,\n error: msg\n };\n }\n }\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\n let resolveReadyPromise;\n const readyPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n const session = connection.domain(\"agm\", [\"subscribed\"]);\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\n async function handleReconnect() {\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\n client.drainSubscriptionsCache().forEach((sub) => {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`soft-subscribing to method ${methodInfo.name} DONE`)).catch((error) => logger.warn(`subscribing to method ${methodInfo.name} failed: ${JSON.stringify(error)}}`));\n });\n const reconnectionPromises = [];\n const existingSubscriptions = client.drainSubscriptions();\n for (const sub of existingSubscriptions) {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\n }\n const registeredMethods = serverRepository.getList();\n serverRepository.reset();\n for (const method of registeredMethods) {\n const def = method.definition;\n if (method.stream) {\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallback) {\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallbackAsync) {\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n }\n await Promise.all(reconnectionPromises);\n logger.info(\"Interop is re-announced\");\n }\n function handleInitialJoin() {\n if (resolveReadyPromise) {\n resolveReadyPromise({\n client,\n server,\n });\n resolveReadyPromise = undefined;\n }\n }\n session.onJoined((reconnect) => {\n clientRepository.addServer(instance, connection.peerId);\n if (reconnect) {\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\n }\n else {\n handleInitialJoin();\n }\n });\n session.onLeft(() => {\n clientRepository.reset();\n });\n session.join();\n return readyPromise;\n}\n\nclass Interop {\n instance;\n readyPromise;\n client;\n server;\n unwrappedInstance;\n protocol;\n clientRepository;\n serverRepository;\n constructor(configuration) {\n if (typeof configuration === \"undefined\") {\n throw new Error(\"configuration is required\");\n }\n if (typeof configuration.connection === \"undefined\") {\n throw new Error(\"configuration.connections is required\");\n }\n const connection = configuration.connection;\n if (typeof configuration.methodResponseTimeout !== \"number\") {\n configuration.methodResponseTimeout = 30 * 1000;\n }\n if (typeof configuration.waitTimeoutMs !== \"number\") {\n configuration.waitTimeoutMs = 30 * 1000;\n }\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\n this.instance = this.unwrappedInstance.unwrap();\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\n this.serverRepository = new ServerRepository();\n let protocolPromise;\n if (connection.protocolVersion === 3) {\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\n }\n else {\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\n }\n this.readyPromise = protocolPromise.then((protocol) => {\n this.protocol = protocol;\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\n this.server = new Server(this.protocol, this.serverRepository);\n return this;\n });\n }\n ready() {\n return this.readyPromise;\n }\n serverRemoved(callback) {\n return this.client.serverRemoved(callback);\n }\n serverAdded(callback) {\n return this.client.serverAdded(callback);\n }\n serverMethodRemoved(callback) {\n return this.client.serverMethodRemoved(callback);\n }\n serverMethodAdded(callback) {\n return this.client.serverMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.client.methodRemoved(callback);\n }\n methodAdded(callback) {\n return this.client.methodAdded(callback);\n }\n methodsForInstance(instance) {\n return this.client.methodsForInstance(instance);\n }\n methods(methodFilter) {\n return this.client.methods(methodFilter);\n }\n servers(methodFilter) {\n return this.client.servers(methodFilter);\n }\n subscribe(method, options, successCallback, errorCallback) {\n return this.client.subscribe(method, options, successCallback, errorCallback);\n }\n createStream(streamDef, callbacks, successCallback, errorCallback) {\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\n }\n unregister(methodFilter) {\n return this.server.unregister(methodFilter);\n }\n registerAsync(methodDefinition, callback) {\n return this.server.registerAsync(methodDefinition, callback);\n }\n register(methodDefinition, callback) {\n return this.server.register(methodDefinition, callback);\n }\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\n }\n waitForMethod(name) {\n const pw = new PromiseWrapper();\n const unsubscribe = this.client.methodAdded((m) => {\n if (m.name === name) {\n unsubscribe();\n pw.resolve(m);\n }\n });\n return pw.promise;\n }\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\nclass MessageBus {\n connection;\n logger;\n peerId;\n session;\n subscriptions;\n readyPromise;\n constructor(connection, logger) {\n this.connection = connection;\n this.logger = logger;\n this.peerId = connection.peerId;\n this.subscriptions = [];\n this.session = connection.domain(\"bus\", successMessages);\n this.readyPromise = this.session.join();\n this.readyPromise.then(() => {\n this.watchOnEvent();\n });\n }\n ready() {\n return this.readyPromise;\n }\n publish = (topic, data, options) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"publish\",\n topic,\n data,\n peer_id: this.peerId,\n routing_key: routingKey,\n target_identity: target\n });\n this.session.send(args);\n };\n subscribe = (topic, callback, options) => {\n return new Promise((resolve, reject) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"subscribe\",\n topic,\n peer_id: this.peerId,\n routing_key: routingKey,\n source: target\n });\n this.session.send(args)\n .then((response) => {\n const { subscription_id } = response;\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\n resolve({\n unsubscribe: () => {\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId });\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\n return Promise.resolve();\n }\n });\n })\n .catch((error) => reject(error));\n });\n };\n watchOnEvent = () => {\n this.session.on(\"event\", (args) => {\n const { data, subscription_id } = args;\n const source = args[\"publisher-identity\"];\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\n if (subscription) {\n if (!subscription.source) {\n subscription.callback(data, subscription.topic, source);\n }\n else {\n if (this.keysMatch(subscription.source, source)) {\n subscription.callback(data, subscription.topic, source);\n }\n }\n }\n });\n };\n removeEmptyValues(obj) {\n const cleaned = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== undefined && obj[key] !== null) {\n cleaned[key] = obj[key];\n }\n });\n return cleaned;\n }\n keysMatch(obj1, obj2) {\n const keysObj1 = Object.keys(obj1);\n let allMatch = true;\n keysObj1.forEach((key) => {\n if (obj1[key] !== obj2[key]) {\n allMatch = false;\n }\n });\n return allMatch;\n }\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\n const glueInitTimer = timer(\"glue\");\n userConfig = userConfig || {};\n ext = ext || {};\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\n let _connection;\n let _interop;\n let _logger;\n let _metrics;\n let _contexts;\n let _bus;\n let _allowTrace;\n const libs = {};\n function registerLib(name, inner, t) {\n _allowTrace = _logger.canPublish(\"trace\");\n if (_allowTrace) {\n _logger.trace(`registering ${name} module`);\n }\n const done = () => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (_allowTrace) {\n _logger.trace(`${name} is ready - ${t.endTime - t.startTime}`);\n }\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready().then(() => {\n done();\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false\n });\n registerLib(\"contexts\", _contexts, initTimer);\n return _contexts;\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\n }\n async function setupBus() {\n if (!internalConfig.bus) {\n return Promise.resolve();\n }\n const initTimer = timer(\"bus\");\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\n registerLib(\"bus\", _bus, initTimer);\n return Promise.resolve();\n }\n function setupExternalLibs(externalLibs) {\n try {\n externalLibs.forEach((lib) => {\n setupExternalLib(lib.name, lib.create);\n });\n return Promise.resolve();\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n function setupExternalLib(name, createCallback) {\n const initTimer = timer(name);\n const lib = createCallback(libs);\n if (lib) {\n registerLib(name, lib, initTimer);\n }\n }\n function waitForLibs() {\n const libsReadyPromises = Object.keys(libs).map((key) => {\n const lib = libs[key];\n return lib.ready ?\n lib.ready() : Promise.resolve();\n });\n return Promise.all(libsReadyPromises);\n }\n function constructGlueObject() {\n const feedbackFunc = (feedbackInfo) => {\n if (!_interop) {\n return;\n }\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\n };\n const info = {\n coreVersion: version,\n version: internalConfig.version\n };\n glueInitTimer.stop();\n const glue = {\n feedback: feedbackFunc,\n info,\n logger: _logger,\n interop: _interop,\n agm: _interop,\n connection: _connection,\n metrics: _metrics,\n contexts: _contexts,\n bus: _bus,\n version: internalConfig.version,\n userConfig,\n done: () => {\n _logger?.info(\"done called by user...\");\n return _connection.logout();\n }\n };\n glue.performance = {\n get glueVer() {\n return internalConfig.version;\n },\n get glueConfig() {\n return JSON.stringify(userConfig);\n },\n get browser() {\n return window.performance.timing.toJSON();\n },\n get memory() {\n return window.performance.memory;\n },\n get initTimes() {\n const all = getAllTimers();\n return Object.keys(all).map((key) => {\n const t = all[key];\n return {\n name: key,\n duration: t.endTime - t.startTime,\n marks: t.marks,\n startTime: t.startTime,\n endTime: t.endTime\n };\n });\n }\n };\n Object.keys(libs).forEach((key) => {\n const lib = libs[key];\n glue[key] = lib;\n });\n glue.config = {};\n Object.keys(internalConfig).forEach((k) => {\n glue.config[k] = internalConfig[k];\n });\n if (ext && ext.extOptions) {\n Object.keys(ext.extOptions).forEach((k) => {\n glue.config[k] = ext?.extOptions[k];\n });\n }\n if (ext?.enrichGlue) {\n ext.enrichGlue(glue);\n }\n if (iodesktop && iodesktop.updatePerfData) {\n iodesktop.updatePerfData(glue.performance);\n }\n if (glue.agm) {\n const deprecatedDecorator = (fn, wrong, proper) => {\n return function () {\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\n return fn.apply(glue.agm, arguments);\n };\n };\n const agmAny = glue.agm;\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\n }\n return glue;\n }\n async function registerInstanceIfNeeded() {\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\n if (isMethodAvailable) {\n try {\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\n }\n catch (error) {\n const typedError = error;\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\n }\n }\n }\n }\n return preloadPromise\n .then(setupLogger)\n .then(setupConnection)\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\n .then(() => _interop.readyPromise)\n .then(() => registerInstanceIfNeeded())\n .then(() => {\n return setupExternalLibs(internalConfig.libs || []);\n })\n .then(waitForLibs)\n .then(constructGlueObject)\n .catch((err) => {\n return Promise.reject({\n err,\n libs\n });\n });\n};\nif (typeof window !== \"undefined\") {\n window.IOConnectCore = IOConnectCoreFactory;\n}\nIOConnectCoreFactory.version = version;\nIOConnectCoreFactory.default = IOConnectCoreFactory;\n\nexport { IOConnectCoreFactory as default };\n//# sourceMappingURL=core.es.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map",null,null,null,null,null,null,null,null,null,null,"let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nexport let nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MetricTypes","STRING","NUMBER","TIMESTAMP","OBJECT","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","send","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","sendFireAndForget","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","err","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","logger","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","require","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","warn","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","rejectConnectionRequest","extMode","typeToValidate","rejection","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","loggedIn","handleSuccessMessage","handleErrorMessage","sm","requestsMap","destination","wasReconnect","handleJoined","requestId","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","errorMsg","leave","onLeft","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","trace","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","handleDisconnected","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","hasCallbacks","lodash_clonedeep","exports","module","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","propertyIsEnumerable","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","getMapData","getValue","pop","hash","string","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","cloneDeep","applyContextDelta","delta","reset","deepClone","commands","command","deletePath","setValueToPath","added","updated","removed","mergeObjectsProperties","obj","what","withWhat","right","deepEqual","y","p","pathArr","isSubset","superObj","subObj","every","ele","ContextsModule","initTime","initStartTime","initEndTime","_bridge","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","subscribe","_d","_r","un","subscriptionKey","thisCallbackSubscriptionNumber","subscription","subKey","hadCallbacks","clone","sendSubscribe","sendUnsubscribe","destroy","_","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","to","cacheSoFar","ctxName","flushQueue","lastKnownData","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","waitTimeoutMs","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","getServers","serverMethodMap","server","getMethods","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodResponseTimeoutMs","serversMethodMap","tryToAwaitForMethods","errorObj","supportsStreaming","objectTypes","flags","metadata","called_with","executed_by","returned","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","isLocal","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","prev","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","accepts","displayName","returns","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","onInvoked","onMethodInvoked","createStream","streamDef","existingStream","streamMethodDefinition","getList","some","serverMethod","protocolState","streamUserObject","repoId","remove","register","wrappedCallbackFunction","resultCallback","args","userCallback","registerCore","registerAsync","wrappedCallback","resultCalled","methodResult","userCallbackAsync","forStream","unregisterWithPredicate","methodToBeRemoved","removeMethodsOrStreams","filterPredicate","methodsOrStreamsToRemove","methodsToRemove","methodUnregPromises","addAsCurrentlyUnregistering","methodName","theFunction","unregisterInProgress","methodToExecute","invocationArgs","unStrException","_value","methodInvocationResult","InstanceWrapper","wrapped","API","getStreams","refreshWrappedObject","refresh","unwrap","user","pid","floor","machine","environment","region","hideMethodSystemFlags","ClientRepository","myServer","methodsCount","wrapper","unwrappedInstance","addServer","serverId","serverEntry","removeServerById","methodId","removeServerMethod","addServerMethod","createMethodIdentifier","that","gatewayId","display_name","object_types","input_signature","result_signature","getServersByMethod","clientMethodDefinition","extractMethodsFromServers","hideServerMethodSystemFlags","unsubscribeFunc","serversWithMethodsToReplay","returnUnsubWithDelayedReplay","methodsToReplay","unsubCalled","getServerById","methodInfo","allServers","collectionToReplay","item","clientMethods","ServerRepository","nextId","TypeError","getById","SUBSCRIPTION_REQUEST","SUBSCRIPTION_ADDED","SUBSCRIPTION_REMOVED","ServerStreaming","repository","ERR_URI_SUBSCRIPTION_FAILED","nextStreamId","handleAddInterest","handleRemoveInterest","streamingMethod","subscriptionsMap","branchKeyToStreamIdMap","streamId","getStreamId","subscription_id","subscribeMsg","stream_id","sendSubscriptionFailed","br","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","errorMessage","reason_uri","needleBranch","ServerProtocol","clientRepository","handleInvokeMessage","isStreaming","registerMsg","restrictions","invocation_id","callerId","UserSubscription","subscriptionData","requestArguments","params","trackedServers","serverInstance","onData","dataCallback","queued","dataItem","onClosed","closedCallback","onFailed","onConnected","setNewSubscription","newSub","TimedCache","timeoutIds","timeoutId","elementIdx","findIndex","ELEMENT_TTL_MS","flush","elements","STATUS_AWAITING_ACCEPT","STATUS_SUBSCRIBED","ERR_MSG_SUB_FAILED","ON_CLOSE_MSG_CLIENT_INIT","ClientStreaming","subscriptionsList","timedCache","subscriptionIdToLocalKeyMap","nextSubLocalKey","handleSubscribed","handleEventData","handleSubscriptionCancelled","subLocalKey","getNextSubscriptionLocalKey","pendingSub","registerSubscription","server_id","handleErrorSubscribing","drainSubscriptions","drainSubscriptionsCache","subsInfo","localKey","closers","closeSubscription","callOnClosedHandlers","errorResponse","callArgs","acceptingServer","isFirstResponse","trackedServersFound","isPrivateData","oob","sendingServerId","receivedStreamData","private","onDataHandlers","queuedData","expectedNewLength","closersCount","closingServerId","closingServer","ClientProtocol","handlePeerAdded","handlePeerRemoved","handleMethodsAddedMessage","handleMethodsRemovedMessage","handleResultMessage","handleInvocationError","newPeerId","new_peer_id","remoteId","meta","local","Number","serverInfo","removedPeerId","removed_id","methodIdList","gW3ProtocolFactory","libConfig","readyPromise","reconnectionPromises","existingSubscriptions","registeredMethods","handleReconnect","protocolPromise","waitForMethod","MessageBus","watchOnEvent","publish","topic","routingKey","removeEmptyValues","routing_key","target_identity","response","keysMatch","cleaned","obj1","obj2","keysObj1","allMatch","IOConnectCoreFactory","userConfig","ext","iodesktop","preloadPromise","gdPreloadPromise","glueInitTimer","internalConfig","nodeStartingContext","startingContextString","env","_GD_STARTING_CONTEXT_","getApplication","glue42electron","applicationConfig","gwConfig","gateway","instanceId","gwURL","uniqueAppName","appInstanceId","getConnection","windowAsAny","containerApplication","htmlContainer","containerName","bus","gwToken","defaultLevel","gdConsoleLevel","consoleLogLevel","getLogger","contexts","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","setupMetrics","initTimer","metricsPublishingEnabledFunc","getMetricsPublishingEnabled","setupInterop","agmConfig","setupContexts","hasActivities","activities","setupBus","setupExternalLibs","externalLibs","createCallback","setupExternalLib","authPromise","authConfig","RegisterInstanceMethodName","typedError","registerInstanceIfNeeded","libsReadyPromises","coreVersion","glue","feedback","feedbackInfo","agm","glueVer","glueConfig","browser","timing","initTimes","duration","extOptions","enrichGlue","updatePerfData","deprecatedDecorator","fn","wrong","proper","agmAny","method_added","method_removed","server_added","server_method_aded","server_method_removed","IOConnectCore","ActivityEntity","_id","_update","_updateCore","_beforeDelete","isNumber","isString","isUndefined","isUndefinedOrNull","isNullOrWhiteSpace","str","isBoolean","ifNotUndefined","doWithIt","ActivityType","ownerWindow","helperWindows","_ownerWindow","_helperWindows","hw","covertToWindowDef","initiate","_manager","windowType","_b","WindowType","appByWindowTypeGetter","_appByWindowTypeGetter","windows","getWindows","activity","isIndependent","createWindow","EntityEvent","entitiy","entity","EntityEventContext","eventType","ActivityStatusChangeEventContext","newStatus","oldStatus","EntityEventType","StatusChange","ActivityContextChangedEventContext","ActivityContextChange","Added","Removed","Updated","Closed","ActivityWindowEvent","ActivityWindowJoinedActivity","ActivityWindowLeftActivity","ActivityState","Created","Started","Destroyed","ActivityAGM","_activity","_ensureHasAgm","AGM","util.isUndefinedOrNull","w","methodNames","methodsForWindow","currentWindowMethod","activityServers","util.isString","potentialTargets","util.isArray","firstElem","_isInstance","_isActivityWindow","win","parameters","AttachedActivityDescriptor","manager","ownerActivityId","_ownerActivityId","ownerId","windowIds","frameColor","detach","descriptor","detachActivities","nextTick","cb","nodeify","util.isFunction","resp","Activity","actType","_actType","_status","_context","_ownerId","_agm","getActivityType","owner","addWindow","addWindowToActivity","createStackedWindows","windowTypes","leaveWindowFromActivity","getWindowsByType","setContext","setActivityContext","updateContext","updateActivityContext","onStatusChange","subscribeActivityEvents","ns","os","onWindowEvent","subscribeWindowEvents","onContextChanged","subscribeActivityContextChanged","act","stopActivity","attach","attachActivities","onActivityAttached","subscribeActivitiesAttached","newActId","oldActId","onDetached","subscribeActivitiesDetached","newAct","originalActivity","_updateDescriptors","allStates","_attached","attached","setFrameColor","color","callbacksToWait","underlyingWindow","getFrameColor","LogLevel","Trace","Debug","Info","Warn","GetNamed","Get","GetTypeName","GlueLogger","_glueLogger","Level","_getMessage","ActivityWindow","windowGetter","hcWindowId","_type","_activityId","_instance","_isIndependent","_windowGetter","_hcWindowId","getBounds","getWindowBounds","getWindowType","util.isUndefined","getActivityById","isOwner","setVisible","isVisible","setWindowVisibility","activate","focus","activateWindow","setBounds","bounds","setWindowBounds","closeWindow","onActivityJoined","_subscribeForActivityWindowEvent","onActivityRemoved","ActivityStatus","getMessage","gwMmessageError","gwMessageAddActivityTypes","gwMessageActivityCreated","gwMessageActivityDestroyed","gwMessageActivityInitiated","gwMessageJoinedActivity","gwMessageActivityJoined","gwMessageActivityLeft","gwMessageOwnerChanged","gwMessageAddPeerFactories","gwMessagePeerFactoriesAdded","gwMessagePeerFactoriesRemoved","gwMessagePeerCreated","GW3Bridge","activityTypeGwMessageEntityToActivityType","nameToWindowType","windowName","owner_type","helper_types","peerFactoryGwMessageEntityToWindowType","peer_type","activityGwMessageToActivity","owner_id","activity_type","activityToActivityStatusChangeEvent","_activityChangeCallbacks","_activityTypeStatusChangeCallbacks","_activityWindowChangeCallbacks","_windowTypeStatusChangeCallbacks","_peerIdAndFactoryIdToPeerType","_peerFactoriesRegisteredByUs","_contextSubscriptions","_activityTypesInitiatedFromMe","_config","_windows","_sessionJoinedPromise","_sessionJoinedPromiseResolve","_activityJoinedPromise","_activityJoinedPromiseResolve","activityInfo","addRefreshHandler","setGWToken","addWillNavigateHandler","bridgeType","forwardActivityTypeMessagesToStatusEventHandlers","handleActivityCreatedMessage","handleActivityDestroyedMessage","forwardActivityMessagesToStatusEventHandlers","forwardActivityCreatedAndJoinedActivityToActivityWindowEventHandlers","forwardPeerFactoryMessagesToStatusEventHandlers","forwardPeerFactoryMessagesToPeerFactoryRequests","handlePeerFactoriesAdded","handlePeerFactoriesRemoved","forwardActivityWindowMessagesToEventHandlers","disposeRequestHandling","my","exit","mode","activity_types","typesToTrack","initReady","onActivityTypeStatusChange","registerActivityType","activityTypeName","toActivityPeerConfig","windowDefinition","activityType","invokeCallbacks","unregisterActivityType","onWindowTypeStatusChange","registerWindowFactory","factory","factories","unregisterWindowFactory","factory_ids","onActivityStatusChange","initiateActivity","initiateMsg","initial_context","isOverrideTypeDefinition","types_override","helpers","wd","sendCreateAndMapResultingMessagesToPromise","initMsg","fullReplace","removedKeys","announceWindow","activityWindowId","registerWindow","independent","shouldSendReady","getAgmInstance","generateWindowGetter","onActivityWindowChange","layout","width","height","cellSize","joinPeer","joinActivity","peer_name","created_id","destroy_peer_id","getAnnouncementInfo","announcementInfo","activityWindowType","activityWindowIndependent","activityWindowName","search","URLSearchParams","searchParams","maybeName","target_id","leaveActivity","getActivityTypes","getWindowTypes","getActivities","getActivityWindows","windowDefinitions","visible","cloneActivity","cloneOptions","into","merge","newActivityInfo","onActivitiesAttached","onActivitiesDetached","onActivityAttachedDescriptorsRefreshed","getAttachedDescriptors","getRandomRequestId","forwardAddedAndRemovedMessagesToEventHandler","addedMessageType","removedMessageType","mapper","getGetEntityEvent","isAdded","forwardMessageToEventHandler","getEntityEvent","ent","h","initiatedMessageType","initiatedMessageFilter","createdMessageFilter","cancelledMessageType","cancelledMessageFilter","createdMessageToPromiseResolution","listenForRecreates","reqId","resolveCreatedPromise","rejectCreatedPromise","createdPromise","initiatedSubscription","createdSubscription","cancelledSubscription","errorSubscription","initiatedMessageAck","dropSubscriptions","dropSubscription","msg4","recreated","msg1","msg2","msg3","toReturn","peerFactoryIdAndOwnerIdToWindowType","factoryId","peerType","subscribeToContext","unsubscribeContext","activityCreatedMessage","participants","createdMessage","peer_factory","gateway_token","joinedMessage","joinedId","joined_id","joinedType","joined_type","joinedName","joined_name","left_id","list","ActivityMy","_myAttached","_myDetached","_myAttachedTo","_myDetachedFrom","_myActivityFrameColorChanged","_myActivityJoinedCallbacks","_myActivityRemovedCallbacks","_myContextUpdateCallbacks","_m","am","_subscribeMyContextChanged","_subscribeMyWindowEvent","_subscribeActivitiesAttached","_subscribeActivitiesDetached","onWindowFrameColorChanged","_subscribeWindowFrameColorChanged","_w","announcedWindows","myWin","onActivityLeft","onActivityDetached","onAttachedToActivity","onDetachedFromActivity","onFrameColorChanged","myActivity","_notifyMyContextChanged","_notifyMyWindowEvent","callbackStore","_notifyAttached","_notifyDetached","_notifyAttachedTo","_notifyDetachedFrom","detached","oldAct","ReadyMarker","signalsToWait","_signals","_callbacks","setCallback","isSet","isError","_error","signal","getError","EntityObservableCollection","processNew","_items","_listeners","_processNew","addOne","items","internalEntity","_updateInternalCollections","_notifyListeners","getByName","getOrWait","entityAddedHandler","listener","entityAsAny","isActivityDestroy","isWindowClose","oldEntity","ActivityManager","usingHc","_announcedWindows","v","bridge","autoAnnounce","_attachedCallbacks","_detachedCallbacks","_frameColorChangesCallbacks","_windowHandlers","_activityTypes","_grabEntity","_windowTypes","_activities","_dataReadyMarker","_descriptorsMarker","_readyMarker","dataErr","errCatch","refreshDescriptors","_handleActivitiesAttached","_handleActivitiesDetached","_handleActivityDescriptorsRefreshed","_handleWindowFrameColorChanged","_subscribeForData","aw","_getInitialData","ownerWindowType","helperWindowTypes","ownerDefinition","helperDefinitions","relativeTo","relativeDirection","windowStyleAttributes","actId","subscribeActivityTypeEvents","at","factoryMethod","util.isObject","getName","predicate","util.some","windowEventHandler","unsubscribeWindowEvents","subscribeWindowTypeEvents","wt","wrappingHandler","found","windowTypeOrConfiguration","relativeToWindow","invalidKeys","filteredWindowTypeOrConfiguration","wid","relativeWindowTypes","stackedWindow","tasks","removedKey","descriptors","stateWrapped","u","subscribeActivityFrameColorChanged","ac","descriptorAsObjectFromAPI","oldActivityId","newActivityId","ActivityManagementAPI","_my","activityTypes","_getActivityTypesWrapper","_getWindowTypesWrapper","registerFactory","unregisterFactory","announce","instances","onAttached","onActivityFrameColorChanged","ActivityAPI","_mgr","aware","inActivity","getAvailableFrameColors","ActivityModule","checkIsUsingGW3Implementation","_api","logLevel","_isUsingHCImplementation","gdMajorVersion","_isUsingGW3Implementation","activityManager","disableAutoAnnounce","My","_readyPromise","isUsingHCImplementation","isUsingGW3Implementation","GetFunctionalEntitlementMethodName","CanIMethodName","OnEventMethodName","GetApplicationsMethodName","objectValues","objectClone","validate","throwErrors","ApplicationImpl","_appManager","_configuration","onInstanceStarted","onInstanceStopped","onAppRemoved","app","onAppChanged","onAppAvailable","_props","IsReady","onAppUnavailable","Title","Version","autoStart","AutoStart","isShell","IsShell","caption","Caption","hidden","IsHidden","container","ApplicationName","ActivityWindowType","windowSettings","Arguments","allowMultiple","AllowMultiple","available","icon","Icon","iconURL","IconUrl","sortOrder","SortOrder","userProperties","UserProperties","keywords","Keywords","isActivity","Type","Mode","styleAttributes","WindowStyleAttributes","searchFor","modeIndex","startModeIndex","stopModeIndex","style","substr","getConfiguration","AgmNames.GetApplicationsMethodName","v2","apps","applications","updateFromProps","Name","start","waitForAGMInstance","awaitInterop","_c","waitForAGMReady","startTimeout","waitForApplicationInstance","waitFunc","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","_e","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onAgmReady","onStopped","getWindow","onWindowAdded","updateAgmInstanceFromProps","agmInstances","idToResolve","handleInstanceStopped","getContext","startedBy","AppManagerImpl","_gdMajorVersion","_apps","_instances","getConfigurations","getMyInstance","getMyApplication","handleSnapshotAppsAdded","newApps","currentApps","handleAppRemoved","handleAppAdded","handleSnapshotInstanceStarted","newInstances","currentInstances","_getAppId","_updateAppFromProps","handleAppUpdated","handleAppReady","_getAppOrThrow","_getInstanceId","_getInstanceAppName","_updateInstanceFromProps","_getInstanceOrThrow","_matchInstance","handleInstanceAgmServerReady","handleInstanceStartFailed","handleInstanceUpdated","onInstanceStartFailed","onInstanceUpdated","onAppAdded","_getInstanceByIdAndName","EntitlementsImpl","_isMethodRegistered","handleBranchModified","handleBranchesModified","getRegion","_agmInvoke","Region","getBranches","Branches","getCurrentBranch","Branch","setRegion","ResultMessage","setCurrentBranch","currentUser","getFunctionalEntitlement","funct","AgmNames.GetFunctionalEntitlementMethodName","Entitlement","getFunctionalEntitlementBranch","canI","AgmNames.CanIMethodName","Result","canIBranch","onBranchesChanged","onBranchChanged","onShuttingDown","registerMethod","restart","transformFunction","prevent","r","InMemoryStoreCommandMethodName","InMemoryStore","import","createAppDef","details","AppManagerFactory","START_ONLY","SKIP_ICONS","appManager","entitlements","skipIcon","snapshot","skipIcons","initiated","resolveFunc","rejectFunc","resultPromise","AgmNames.OnEventMethodName","streamData","events","onApplicationAddedEventArgs","isSnapshot","onApplicationStartedEventArgs","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","myInstance","myApplication","inMemory","getGDMajorVersion","glueDesktop","ver","callbackifyPromise","fail","getMonitor","displays","workingAreaWidth","workingAreaHeight","monitor","totalOverlap","calculateTotalOverlap","getDisplayCenterOfScreen","currentDisplay","primaryDisplay","physicalWidth","scaleFactor","physicalHeight","physicalDisplayLeft","workArea","physicalDisplayTop","physicalDisplayWidth","physicalDisplayHeight","physicalHOffset","max","physicalVOffset","centeredPhysicalLeft","centeredPhysicalTop","generateId","r1","r2","r1x","r1y","r1xMax","r1yMax","r2x","r2y","r2xMax","r2yMax","min","T42JumpListAction","jumpListManager","_groupActionCallbacks","_registered","_executor","registerCallbackMethod","setEnabled","updateJumpList","createCategory","actions","validateActions","category","toUpdateActions","removeCategory","manageActionCallback","createActions","categoryTitle","removeActions","getActions","catgoryTitle","currentCategory","getJumpListSettings","categories","actionCallback","getActionCallback","callbackId","singleInstanceTitle","multiInstanceTitle","getJumpList","updateAction","groupCallbacksKey","categoryActionCallbacks","accCal","delete","callbackAction","cal","windowStore","waitForTimeoutInMilliseconds","_pendingWindows","_pendingWindowsStates","CallbackFactory","getIfReady","remote","urlChanged","setReadyState","targetWindowState","markReadyToShow","setUrlChangedState","setCompositionChangedState","windowAvailableOnURLChanged","waitFor","unReady","unRemoved","cleanup","onReadyWindow","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","windowFactory","appManagerGetter","displayAPIGetter","channelsAPIGetter","getChannels","channels","_mode","_bounds","_url","_frameColor","_focus","_neighbours","neighbours","_groupId","groupId","_isGroupHeaderVisible","isGroupHeaderVisible","_isTabHeaderVisible","isTabHeaderVisible","_isGroupHibernated","isGroupHibernated","_isGroupVisible","isGroupVisible","_isTabSelected","isTabSelected","_settings","_applicationName","_group","_isVisible","_isSticky","isSticky","_isCollapsed","isCollapsed","_windowState","_tabGroupId","tabGroupId","_tabIndex","tabIndex","_frameId","frameId","_isLocked","isLocked","_allowWorkspaceDrop","allowWorkspaceDrop","_isPinned","isPinned","_frameButtons","frameButtons","_zoomFactor","zoomFactor","_placementSettings","placementSettings","_jumpList","moveResize","utils","resultWindow","toBeVisible","onGroupChanged","onEventCore","replayArguments","getNeighboursByDirection","direction","winId","getApplicationName","_APPLICATION_NAME","_t42","getWindowInfo","hostInstance","agmInstance","b1","b2","minHeight","maxHeight","minWidth","maxWidth","isFocused","opened","group","topNeighbours","leftNeighbours","rightNeighbours","bottomNeighbours","screen","monitors","jumpList","maximize","restore","minimize","maximizeRestore","collapse","expand","toggleCollapse","setTitle","newTitle","setStyle","styleAsAny","util.isNumber","setOnTop","onTop","resetButtons","buttons","getButtons","setSizeConstraints","constraints","getSizeConstraints","navigate","newUrl","optionsOrCallback","util.isNullOrWhiteSpace","addFrameButton","buttonInfo","buttonId","imageBase64","removeFrameButton","show","hide","center","display","validateCenterArguments","cbOrOptions","snap","autoAlign","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","errMsg","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","dock","executeCode","getChannel","getWindowsWithChannels","channel","startDrag","option","showDialog","dialogOptions","timerDuration","showTimer","onClose","onUrlChanged","onTitleChanged","onFrameButtonAdded","onFrameButtonRemoved","onFrameButtonClicked","onCollapsed","onExpanded","onMinimized","onMaximized","onNormal","onVisibilityChanged","onContextUpdated","onLockingChanged","onBoundsChanged","onFocusChanged","onStickyChanged","onWindowAttached","onWindowDetached","onTabSelectionChanged","onTabHeaderVisibilityChanged","onClosing","onRefreshing","onZoomFactorChanged","onPlacementSettingsChanged","onNeighboursChanged","onDockingChanged","onNavigating","onChannelRestrictionsChanged","tabs","allWindows","w1","w2","MIN_SAFE_INTEGER","getAllTabs","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","joinChannel","leaveChannel","Events","handleUpdate","handleWindowClose","handleWindowChangeState","finished","handleTitleChanged","finally","handleVisibilityChanged","handleUrlChanged","handleWindowSettingsChanged","handleContextUpdated","handleFrameIsLockedChanged","handleBoundsChanged","handleFocusChanged","handleFrameButtonAdded","frameButton","buttonObj","btn","handleFrameButtonRemoved","frameButtonId","button","handleFrameButtonClicked","handleFrameColorChanged","handleFrameAttached","handleFrameSelectionChanged","newWindow","prevWindow","selectedWindow","previousWindow","handleCompositionChanged","neighbors","handleAllowWorkspaceDropChanged","handleIsPinnedChanged","handleGroupHeaderVisibilityChanged","handleTabHeaderVisibilityChanged","handleGroupChanged","handleAttached","newTabGroupId","newFrameId","tabHeaderVisible","winsToBeNotified","handleWindowAttached","handleDetached","handleWindowDetached","handleZoomFactorChanged","handleIsStickyChanged","handlePlacementSettingsChanged","displayAPI","handleDockingChanged","docked","position","claimScreenArea","handleChannelRestrictionsChanged","GroupCreationArgs","getWindowsByTabGroupId","isEmpty","GroupMethodName","WndMethodName","_finished","unsubCallbacks","agmTarget","setConfiguration","handleEvent","finishedResolve","closed","urlLoadOptions","stylePromises","wait","tabTooltip","tabToolTip","toolTip","tabTitle","allowClose","allowCollapse","allowLockUnlock","allowMaximize","allowMinimize","buttonsConfig","windowToPin","pinnedWindow","versionNum","rej","resolveImmediately","areBoundsEqual","unsubscribeBoundsChanged","resolveTimeout","unFocusChanged","unClosed","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","showPopupCore","executeGroup","optionsCopy","horizontalOffset","verticalOffset","fullOptions","reformatFlydownOptions","zoneIds","zones","z","flydownSize","cancel","targetId","clearFlydownArea","autoArrange","displayId","handleFlydownBoundsRequested","callbackData","zoneId","flydownId","flydownWindowBounds","flydownWindowId","responses","defaultResponse","handleOnEventRequested","prevented","preventArgs","pArgs","captureGroup","groupWindowIds","filePath","enableDownloadBar","silent","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_waitTimeout","_windowId","_appManagerGetter","_displayAPIGetter","_channelsAPIGetter","respondToEvent","streamResolve","streamReject","withConfig","updateWindow","copyOptions","windowState","tabAttached","tabDetached","onEvent","myGroup","onCompositionChanged","onGroupHeaderVisibilityChanged","onGroupVisibilityChanged","onGroupStateChanged","onWindowGotFocus","onWindowLostFocus","onWindowsAutoArrangeChanged","windowInfo","readyResolve","extendedStreamEvent","getExtendedStreamEvent","existingWindow","mapToWindowConstructorOptions","mapToGroupCreationArgs","windowInfoCreatedEvent","windowObjectAndEvents","theWindow","theWindowEvents","windowInfoBoundsChangedEvent","windowInfoUrlChangedEvent","windowInfoTitleChanged","windowInfoIsStickyChangedChanged","windowInfoCompositionChanged","groupHeaderVisible","windowInfoFocusChanged","focusChanged","oldTabGroupId","newWindowId","prevWindowId","windowObjAndEvents","isActiveTab","jumpListOptions","streamEvent","charAt","toUpperCase","groupFactory","callbackRegistry","_windowsId","_isHibernatedFlag","groupObject","_mapToWindowObjects","winObjects","windowObject","_mapToWindowObject","mappedWindows","isHeaderVisible","isHibernated","showHeader","hideHeader","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","store","layouts","removeWhere","condition","removeAll","where","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","LayoutsFactory","acsStream","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","T42_ANNOUNCE_METHOD_NAME","switchChannel","swId","newChannel","getRestrictionsByWindow","addOrRemoveChannel","CONTEXT_PREFIX","LATEST_FDC3_TYPE","SharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","ChannelsImpl","shared","subsKey","changedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","subscribeForChannelRestrictionsChange","initialChannel","joinNoSelectorSwitch","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","validatePathArgs","channelNames","getMy","joinCore","leaveCore","leaveNoSelectorSwitch","changed","getWindowsOnChannel","er","restrict","restriction","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","handleRestrictionsChanged","changeSelector","doesChannelExist","channelExistsPromise","intervalId","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","parsedType","latestTypePropName","fdc3Data","latestFDC3Type","sharedContexts","setupInteropPromise","interopLib","isSupported","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","getLibConfig","defaultMode","trueMode","getModeAsString","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","toAPI","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","methodsRegistered","NOTIFICATIONS_CONFIGURE_METHOD_NAME","methodNameRoot","notifications","subscribedForNotifications","subscribedCounterStream","subscriptionsCountForNotifications","subscriptionsCountForCounter","_panel","onStreamEventCore","_panelAPI","subscribeInternalEvents","maxActions","panel","raise","bunchOfPromises","handleNotificationEvent","notification","severity","glueRoutingDetailMethodName","sourceId","publishExtraEvents","clickInterop","handleActions","handleOptions","g42notification","invocationResult","handleNotificationErrorEvent","setFilter","getFilter","enable","enableToasts","toastExpiry","sourceFilter","allowed","blocked","toasts","_f","stackBy","placement","_g","_h","statesVersion2","attribute","stringValue","onRaised","onStateChanged","onConfigurationChanged","closeStreamSubscriptionIfNoNeeded","onCounterChanged","subscribeForCounterStream","closeStreamCounterSubscriptionIfNoNeeded","onDataChanged","clearAll","clearOld","clearMany","validateNotificationsArr","click","snooze","snoozeMany","validateState","setStates","attributes","dataAsString","panelExpiry","validActions","g42notificationId","g42action","g42interopMethod","g42interopTarget","g42interopArguments","glueAction","sendDeltaOnly","subscriptionForNotifications","handleData","subscriptionForCounter","count","handleOnClosed","handleOnShow","handleItemsData","deltas","handleDeltas","allApplications","dataAttribute","getNotification","gnsNotificationArgs","getGnsNotificationArgs","notificationId","handleNotificationEventCore","handleNotificationActionEvent","notificationActionPayload","handleNotificationClickEvent","onaction","onclick","sourceNotificationId","getBackwardGnsNotificationArgs","ThemesImpl","isSubscribed","getMethodName","getCurrent","select","theme","setMethodName","sharedContextName","getThemesMethodName","setThemesMethodName","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","PromiseWrap","promiseActive","validateResolverResponse","responseObj","intent","isValid","userSettings","preserveChoice","compulsoryKeysExist","ok","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","checkIfIntentsResolverIsEnabled","intentFilter","intents","contextType","ctToLower","contextTypes","ct","resultType","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","intentName","appWithIntents","appIntent","appDefIntent","windowsIdToTitle","instanceTitle","addIntentListener","registerPromise","intentFlag","buildInteropMethodName","unsubscribeIntent","filterHandlers","handlerFilter","openResolver","applicationNames","ctx","validateHandlerFilter","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","filteredIntentsWithHandlers","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","invokeStartApp","invokeOptions","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","startedByIntentAPI","intentPromise","gdWin","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","prevPrefs","prevIntentsPrefs","prefsToUpdate","Prefs","interopMethodRegistered","verifyDataObject","setFor","verifyApp","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","Cookies","cookies","cookie","verifyCookieObject","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","layoutsConfig","lay","hotkeysAPI","displaysLogger","intentsAPI","notificationsAPI","themesAPI","themes","currentLog","glueFactoryLog","glueApi","CoreFactory","libraries","calls","whatToExpose","CreateGlue","shouldSetToWindow","autoInjected","IODesktop","Glue","IOBrowser","GlueCore"],"mappings":"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","x_google_ignoreList":[22,33]}