@akshar5/cohall 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/cohall.js.map CHANGED
@@ -15,16 +15,16 @@
15
15
  "import { DeviceId, Provider, makeDeviceId, type Provider as ProviderName } from \"@cohall/protocol\"\nimport { Effect, Schema } from \"effect\"\nimport { access, chmod, mkdir, readFile, realpath, rename, writeFile } from \"node:fs/promises\"\nimport { homedir, hostname, platform } from \"node:os\"\nimport { dirname, join, resolve } from \"node:path\"\n\nconst WorkspaceList = Schema.Array(Schema.NonEmptyString).check(Schema.isMaxLength(64))\nconst ProviderList = Schema.Array(Provider)\n .check(Schema.isMinLength(1))\n .check(Schema.isMaxLength(Provider.literals.length))\nconst Sandbox = Schema.Literals([\"read-only\", \"workspace-write\", \"danger-full-access\"])\n\nexport const StoredConfiguration = Schema.Struct({\n version: Schema.Literal(1),\n relayUrl: Schema.NonEmptyString,\n deviceId: DeviceId,\n deviceName: Schema.NonEmptyString,\n workspaces: WorkspaceList,\n clientToken: Schema.optionalKey(Schema.NonEmptyString),\n deviceToken: Schema.optionalKey(Schema.NonEmptyString),\n providers: Schema.optionalKey(ProviderList),\n model: Schema.optionalKey(Schema.NonEmptyString),\n sandbox: Schema.optionalKey(Sandbox),\n grokGateway: Schema.optionalKey(Schema.NonEmptyString),\n})\nexport interface StoredConfiguration extends Schema.Schema.Type<typeof StoredConfiguration> {}\n\nexport const ClientConfiguration = Schema.Struct({\n relayUrl: Schema.NonEmptyString,\n token: Schema.NonEmptyString,\n mcpThreadId: Schema.optionalKey(Schema.String),\n mcpTaskId: Schema.optionalKey(Schema.String),\n})\nexport interface ClientConfiguration extends Schema.Schema.Type<typeof ClientConfiguration> {}\n\nexport const DeviceConfiguration = Schema.Struct({\n relayUrl: Schema.NonEmptyString,\n token: Schema.NonEmptyString,\n id: DeviceId,\n name: Schema.NonEmptyString,\n workspaces: WorkspaceList,\n providers: Schema.optionalKey(ProviderList),\n model: Schema.optionalKey(Schema.NonEmptyString),\n sandbox: Schema.optionalKey(Sandbox),\n grokGateway: Schema.optionalKey(Schema.NonEmptyString),\n})\nexport interface DeviceConfiguration extends Schema.Schema.Type<typeof DeviceConfiguration> {}\n\nconst defaultConfigDirectory = (): string => {\n if (platform() === \"win32\") {\n return join(process.env.APPDATA ?? join(homedir(), \"AppData\", \"Roaming\"), \"Cohall\")\n }\n if (platform() === \"darwin\") {\n return join(homedir(), \"Library\", \"Application Support\", \"Cohall\")\n }\n return join(process.env.XDG_CONFIG_HOME ?? join(homedir(), \".config\"), \"cohall\")\n}\n\nconst defaultRelayDataDirectory = (): string => {\n if (platform() === \"win32\") {\n return join(process.env.LOCALAPPDATA ?? join(homedir(), \"AppData\", \"Local\"), \"Cohall\")\n }\n if (platform() === \"darwin\") {\n return join(homedir(), \"Library\", \"Application Support\", \"Cohall\", \"relay\")\n }\n return join(process.env.XDG_DATA_HOME ?? join(homedir(), \".local\", \"share\"), \"cohall\")\n}\n\nexport const relayDataDirectory = (): string =>\n resolve(process.env.COHALL_DATA_DIR ?? defaultRelayDataDirectory())\n\nexport const configurationPath = (): string =>\n resolve(process.env.COHALL_CONFIG ?? join(defaultConfigDirectory(), \"config.json\"))\n\nexport const normalizeRelayUrl = (input: string): string => {\n const url = new URL(input)\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n throw new Error(\"Relay URL must use http or https\")\n }\n if (\n url.username.length > 0 ||\n url.password.length > 0 ||\n url.search.length > 0 ||\n url.hash.length > 0\n ) {\n throw new Error(\"Relay URL cannot include credentials, a query, or a fragment\")\n }\n if (url.pathname !== \"/\" && url.pathname !== \"\") {\n throw new Error(\"Relay URL cannot include a path\")\n }\n url.pathname = \"/\"\n return url.toString().replace(/\\/$/, \"\")\n}\n\nexport const parseWorkspaces = (\n workspaceList: string,\n workspaceJson?: string,\n): Effect.Effect<ReadonlyArray<string>, Error> =>\n Effect.tryPromise({\n try: async () => {\n const values =\n workspaceJson === undefined\n ? workspaceList\n .split(\",\")\n .map((workspace) => workspace.trim())\n .filter((workspace) => workspace.length > 0)\n : Schema.decodeUnknownSync(WorkspaceList)(JSON.parse(workspaceJson))\n const canonical = await Promise.all(values.map((workspace) => realpath(resolve(workspace))))\n return [...new Set(canonical)]\n },\n catch: (cause) =>\n new Error(\n `Workspace roots must be existing paths; JSON input must be an array of paths: ${cause instanceof Error ? cause.message : String(cause)}`,\n ),\n })\n\nexport const parseProviders = (input: string): ReadonlyArray<ProviderName> =>\n Schema.decodeUnknownSync(ProviderList)([\n ...new Set(\n input\n .split(\",\")\n .map((provider) => provider.trim())\n .filter(Boolean),\n ),\n ])\n\nexport const readStoredConfiguration = async (): Promise<StoredConfiguration | undefined> => {\n const path = configurationPath()\n if (\n !(await access(path)\n .then(() => true)\n .catch(() => false))\n ) {\n return undefined\n }\n if (platform() !== \"win32\") {\n await chmod(path, 0o600)\n }\n try {\n return Schema.decodeUnknownSync(StoredConfiguration)(JSON.parse(await readFile(path, \"utf8\")))\n } catch (cause) {\n throw new Error(`Invalid Cohall configuration at ${path}: ${String(cause)}`)\n }\n}\n\nexport const writeStoredConfiguration = async (\n configuration: StoredConfiguration,\n): Promise<void> => {\n const path = configurationPath()\n const directory = dirname(path)\n const temporary = `${path}.${process.pid}.tmp`\n await mkdir(directory, { recursive: true, mode: 0o700 })\n if (platform() !== \"win32\") {\n await chmod(directory, 0o700)\n }\n await writeFile(temporary, `${JSON.stringify(configuration, null, 2)}\\n`, { mode: 0o600 })\n await rename(temporary, path)\n if (platform() !== \"win32\") {\n await chmod(path, 0o600)\n }\n}\n\nexport const credentialsForRelay = (\n configuration: StoredConfiguration | undefined,\n relayUrl: string,\n): { readonly clientToken?: string; readonly deviceToken?: string } => {\n if (configuration?.relayUrl !== normalizeRelayUrl(relayUrl)) {\n return {}\n }\n return {\n ...(configuration.clientToken === undefined ? {} : { clientToken: configuration.clientToken }),\n ...(configuration.deviceToken === undefined ? {} : { deviceToken: configuration.deviceToken }),\n }\n}\n\nexport const makeStoredConfiguration = async (input: {\n readonly relayUrl: string\n readonly deviceName?: string\n readonly workspaces?: ReadonlyArray<string>\n readonly providers?: ReadonlyArray<ProviderName> | \"auto\"\n readonly clientToken?: string\n readonly deviceToken?: string\n}): Promise<StoredConfiguration> => {\n const existing = await readStoredConfiguration()\n const relayUrl = normalizeRelayUrl(input.relayUrl)\n const retainedCredentials = credentialsForRelay(existing, relayUrl)\n const canonicalWorkspaces =\n input.workspaces === undefined\n ? (existing?.workspaces ?? [])\n : await Effect.runPromise(parseWorkspaces(\"\", JSON.stringify(input.workspaces)))\n const clientToken = input.clientToken ?? retainedCredentials.clientToken\n const deviceToken = input.deviceToken ?? retainedCredentials.deviceToken\n const providers =\n input.providers === \"auto\" ? undefined : (input.providers ?? existing?.providers)\n return StoredConfiguration.make({\n version: 1,\n relayUrl,\n deviceId: existing?.deviceId ?? makeDeviceId(),\n deviceName: input.deviceName ?? existing?.deviceName ?? hostname(),\n workspaces: canonicalWorkspaces,\n ...(clientToken === undefined ? {} : { clientToken }),\n ...(deviceToken === undefined ? {} : { deviceToken }),\n ...(providers === undefined ? {} : { providers }),\n ...(existing?.model === undefined ? {} : { model: existing.model }),\n ...(existing?.sandbox === undefined ? {} : { sandbox: existing.sandbox }),\n ...(existing?.grokGateway === undefined ? {} : { grokGateway: existing.grokGateway }),\n })\n}\n\nconst environmentWorkspaces = async (\n stored: StoredConfiguration | undefined,\n): Promise<ReadonlyArray<string>> => {\n const list = process.env.COHALL_DEVICE_WORKSPACES\n const json = process.env.COHALL_DEVICE_WORKSPACES_JSON\n if (list === undefined && json === undefined) {\n return stored?.workspaces ?? []\n }\n return Effect.runPromise(parseWorkspaces(list ?? \"\", json))\n}\n\nconst environmentProvider = (): string | undefined =>\n process.env.COHALL_MODEL ?? process.env.COHALL_CODEX_MODEL\n\nconst environmentSandbox = (): DeviceConfiguration[\"sandbox\"] => {\n const value = process.env.COHALL_SANDBOX ?? process.env.COHALL_CODEX_SANDBOX\n return value === undefined ? undefined : Schema.decodeUnknownSync(Sandbox)(value)\n}\n\nconst environmentProviders = (\n stored: StoredConfiguration | undefined,\n): ReadonlyArray<ProviderName> | undefined => {\n const value = process.env.COHALL_DEVICE_PROVIDERS\n return value === undefined\n ? stored?.providers\n : value === \"auto\"\n ? undefined\n : parseProviders(value)\n}\n\nconst storedOrDefaults = async (): Promise<StoredConfiguration> => {\n const stored = await readStoredConfiguration()\n return (\n stored ??\n StoredConfiguration.make({\n version: 1,\n relayUrl: \"http://127.0.0.1:8787\",\n deviceId: makeDeviceId(),\n deviceName: hostname(),\n workspaces: [],\n })\n )\n}\n\nexport const loadClientConfiguration = Effect.tryPromise({\n try: async () => {\n const stored = await storedOrDefaults()\n const relayUrl = normalizeRelayUrl(process.env.COHALL_RELAY_URL ?? stored.relayUrl)\n const token =\n process.env.COHALL_CLIENT_TOKEN ?? credentialsForRelay(stored, relayUrl).clientToken\n if (token === undefined) {\n throw new Error(\n `No client credential. Run cohall join with a pairing token on stdin or set COHALL_CLIENT_TOKEN.`,\n )\n }\n return ClientConfiguration.make({\n relayUrl,\n token,\n ...(process.env.COHALL_THREAD_ID === undefined\n ? {}\n : { mcpThreadId: process.env.COHALL_THREAD_ID }),\n ...(process.env.COHALL_TASK_ID === undefined\n ? {}\n : { mcpTaskId: process.env.COHALL_TASK_ID }),\n })\n },\n catch: (cause) => (cause instanceof Error ? cause : new Error(String(cause))),\n})\n\nexport const loadOwnerConfiguration = Effect.tryPromise({\n try: async () => {\n const stored = await storedOrDefaults()\n const ownerTokenPath = join(relayDataDirectory(), \"owner-token\")\n const token =\n process.env.COHALL_TOKEN ??\n (await readFile(ownerTokenPath, \"utf8\")\n .then((value) => value.trim())\n .catch(() => undefined))\n if (token === undefined || token.length === 0) {\n throw new Error(\n \"No owner credential. Run this command on the relay host or set COHALL_TOKEN.\",\n )\n }\n if (token.length < 32) {\n throw new Error(\"The Cohall relay owner token must be at least 32 characters\")\n }\n return ClientConfiguration.make({\n relayUrl: normalizeRelayUrl(process.env.COHALL_RELAY_URL ?? stored.relayUrl),\n token,\n })\n },\n catch: (cause) => (cause instanceof Error ? cause : new Error(String(cause))),\n})\n\nexport const loadDeviceConfiguration = Effect.tryPromise({\n try: async () => {\n const stored = await storedOrDefaults()\n const relayUrl = normalizeRelayUrl(process.env.COHALL_RELAY_URL ?? stored.relayUrl)\n const token =\n process.env.COHALL_DEVICE_TOKEN ?? credentialsForRelay(stored, relayUrl).deviceToken\n if (token === undefined) {\n throw new Error(\n `No device credential. Run cohall join with a pairing token on stdin or set COHALL_DEVICE_TOKEN.`,\n )\n }\n const workspaces = await environmentWorkspaces(stored)\n if (workspaces.length === 0) {\n throw new Error(\"No device workspace roots are configured\")\n }\n const model = environmentProvider() ?? stored.model\n const sandbox = environmentSandbox() ?? stored.sandbox\n const providers = environmentProviders(stored)\n const grokGateway = process.env.COHALL_GROK_GATEWAY ?? stored.grokGateway\n return DeviceConfiguration.make({\n relayUrl,\n token,\n id:\n process.env.COHALL_DEVICE_ID === undefined\n ? stored.deviceId\n : DeviceId.make(process.env.COHALL_DEVICE_ID),\n name: process.env.COHALL_DEVICE_NAME ?? stored.deviceName,\n workspaces,\n ...(providers === undefined ? {} : { providers }),\n ...(model === undefined ? {} : { model }),\n ...(sandbox === undefined ? {} : { sandbox }),\n ...(grokGateway === undefined ? {} : { grokGateway: resolve(grokGateway) }),\n })\n },\n catch: (cause) => (cause instanceof Error ? cause : new Error(String(cause))),\n})\n\nexport const knownProviders = Provider.literals\n",
16
16
  "import type { Interface as RelayClient } from \"@cohall/client\"\nimport {\n BotId,\n DeviceId,\n Provider,\n TaskId,\n TaskStatus,\n ThreadId,\n terminalTaskStatuses,\n isTerminalTask,\n type Device,\n type Provider as ProviderName,\n type Task,\n type TaskTrace,\n type ThreadId as ThreadIdType,\n} from \"@cohall/protocol\"\nimport { Effect, Schedule, Schema } from \"effect\"\nimport type { ClientConfiguration } from \"./config.ts\"\n\nexport class DeviceSelectionError extends Schema.TaggedErrorClass<DeviceSelectionError>()(\n \"Cohall.DeviceSelectionError\",\n { message: Schema.String, devices: Schema.Array(Schema.String) },\n) {}\n\nexport class TaskWaitTimeoutError extends Schema.TaggedErrorClass<TaskWaitTimeoutError>()(\n \"Cohall.TaskWaitTimeoutError\",\n { message: Schema.String, taskId: TaskId, status: TaskStatus },\n) {}\n\nexport interface DelegateOptions {\n readonly prompt: string\n readonly target?: string\n readonly context?: string\n readonly threadId?: ThreadIdType\n readonly workspace?: string\n readonly provider?: ProviderName\n readonly parentTaskId?: TaskId\n}\n\nexport const TaskResult = Schema.Struct({\n task_id: TaskId,\n thread_id: ThreadId,\n status: TaskStatus,\n provider: Provider,\n target_device_id: DeviceId,\n bot_id: Schema.optionalKey(BotId),\n result: Schema.optionalKey(Schema.String),\n error: Schema.optionalKey(Schema.String),\n})\nexport interface TaskResult extends Schema.Schema.Type<typeof TaskResult> {}\n\nconst matchingDevices = (devices: ReadonlyArray<Device>, target: string): ReadonlyArray<Device> => {\n const value = target.replace(/^@/, \"\")\n const normalized = value.toLowerCase()\n const byId = devices.find((device) => device.id === value)\n return byId === undefined\n ? devices.filter(\n (device) =>\n device.name.toLowerCase() === normalized || device.hostname.toLowerCase() === normalized,\n )\n : [byId]\n}\n\nexport const listBots = (devices: ReadonlyArray<Device>) =>\n devices.flatMap((device) =>\n (device.bots ?? []).map((bot) => ({\n id: bot.id,\n name: bot.name,\n ...(bot.description === undefined ? {} : { description: bot.description }),\n device_id: device.id,\n device_name: device.name,\n status: device.status,\n target: `@${device.id}/${bot.id}`,\n })),\n )\n\nconst selectTarget = Effect.fn(\"Cohall.selectTarget\")(function* (\n devices: ReadonlyArray<Device>,\n target: string,\n) {\n const value = target.replace(/^@/, \"\")\n const separator = value.indexOf(\"/\")\n const qualified = separator !== -1\n const deviceMatches = matchingDevices(devices, qualified ? value.slice(0, separator) : value)\n const botValue = qualified ? value.slice(separator + 1) : value\n const bots = listBots(qualified ? deviceMatches : devices)\n const botsById = bots.filter((bot) => bot.id === botValue)\n const botMatches =\n botsById.length > 0\n ? botsById\n : bots.filter((bot) => bot.name.toLowerCase() === botValue.toLowerCase())\n // An exact device ID remains a direct device target, even if a bot uses it as a name.\n const exactDevice = qualified ? undefined : deviceMatches.find((device) => device.id === value)\n if (exactDevice !== undefined) return { deviceId: exactDevice.id, botId: undefined }\n const matches = [\n ...(qualified\n ? []\n : deviceMatches.map((device) => ({ deviceId: device.id, botId: undefined }))),\n ...botMatches.map((bot) => ({ deviceId: bot.device_id, botId: bot.id })),\n ]\n const selected = matches[0]\n if (matches.length === 1 && selected !== undefined) return selected\n return yield* new DeviceSelectionError({\n message:\n matches.length === 0\n ? `No Cohall device or bot matches ${target}; use cohall devices or cohall bots`\n : `${target} is ambiguous; use a device ID or @device-id/bot-id from cohall bots`,\n devices: [\n ...deviceMatches.map((device) => `${device.name} (@${device.id})`),\n ...botMatches.map((bot) => `${bot.name} on ${bot.device_name} (${bot.target})`),\n ],\n })\n})\n\nexport const taskResult = (task: Task): TaskResult =>\n TaskResult.make({\n task_id: task.id,\n thread_id: task.threadId,\n status: task.status,\n provider: task.provider,\n target_device_id: task.targetDeviceId,\n ...(task.botId === undefined ? {} : { bot_id: task.botId }),\n ...(task.result === undefined ? {} : { result: task.result }),\n ...(task.error === undefined ? {} : { error: task.error }),\n })\n\nexport const createDelegation = Effect.fn(\"Cohall.createDelegation\")(function* (\n client: RelayClient,\n configuration: ClientConfiguration,\n options: DelegateOptions,\n) {\n const devices = yield* client.devices()\n if (devices.length === 0) {\n return yield* new DeviceSelectionError({\n message: \"No Cohall devices are registered\",\n devices: [],\n })\n }\n let target =\n options.target === undefined ? undefined : yield* selectTarget(devices, options.target)\n if (\n target === undefined &&\n options.threadId !== undefined &&\n options.provider === undefined &&\n options.parentTaskId === undefined &&\n configuration.mcpTaskId === undefined\n ) {\n const context = yield* client.threadContext(options.threadId)\n const previous = context.tasks.findLast((task) => task.parentTaskId === undefined)\n if (previous === undefined && context.truncated) {\n return yield* new DeviceSelectionError({\n message: \"Earlier thread targets are no longer in the retained context; specify --target\",\n devices: [],\n })\n }\n if (previous?.provider === \"grok-bot\" && previous.botId !== undefined) {\n target = yield* selectTarget(devices, `@${previous.targetDeviceId}/${previous.botId}`)\n }\n }\n const botId = target?.botId\n if (botId !== undefined && options.provider !== undefined && options.provider !== \"grok-bot\") {\n return yield* new DeviceSelectionError({\n message: `A bot target requires provider grok-bot, not ${options.provider}`,\n devices: [],\n })\n }\n if (botId === undefined && options.provider === \"grok-bot\") {\n return yield* new DeviceSelectionError({\n message: \"Select a bot with --target; use cohall bots to list available bots\",\n devices: [],\n })\n }\n const provider = botId === undefined ? options.provider : \"grok-bot\"\n const inheritedThread = configuration.mcpThreadId\n const parentTaskId =\n options.parentTaskId ??\n (configuration.mcpTaskId === undefined\n ? undefined\n : yield* Schema.decodeUnknownEffect(TaskId)(configuration.mcpTaskId))\n return yield* client.createTask({\n prompt: options.prompt,\n ...(target === undefined ? {} : { targetDeviceId: target.deviceId }),\n ...(botId === undefined ? {} : { botId }),\n ...(options.threadId !== undefined\n ? { threadId: options.threadId }\n : inheritedThread === undefined\n ? {}\n : { threadId: ThreadId.make(inheritedThread) }),\n ...(options.context === undefined ? {} : { context: options.context }),\n ...(options.workspace === undefined ? {} : { workspace: options.workspace }),\n ...(provider === undefined ? {} : { provider }),\n ...(parentTaskId === undefined ? {} : { parentTaskId }),\n })\n})\n\nexport const waitForTask = Effect.fn(\"Cohall.waitForTask\")(function* (\n client: RelayClient,\n initial: Task,\n timeoutSeconds: number,\n) {\n const deadline = Date.now() + timeoutSeconds * 1_000\n let task = initial\n while (!isTerminalTask(task)) {\n if (Date.now() >= deadline) {\n return yield* new TaskWaitTimeoutError({\n message: `Task ${task.id} is still ${task.status} after ${timeoutSeconds} seconds`,\n taskId: task.id,\n status: task.status,\n })\n }\n yield* Effect.sleep(\"1 second\")\n task = yield* client.getTask(task.id)\n }\n return task\n})\n\nexport const followTaskTrace = Effect.fn(\"Cohall.followTaskTrace\")(function* (\n client: RelayClient,\n taskId: TaskId,\n onTrace: (trace: TaskTrace) => void,\n) {\n let revision: string | undefined\n const poll = client.traceTask(taskId).pipe(\n Effect.tap((trace) => {\n const latest = trace.events.at(-1)\n const nextRevision = `${trace.status}:${latest?.kind ?? \"none\"}:${latest?.at ?? \"none\"}`\n if (nextRevision === revision) {\n return Effect.succeed(undefined)\n }\n revision = nextRevision\n return Effect.sync(() => onTrace(trace))\n }),\n )\n return yield* poll.pipe(\n Effect.repeat({\n until: (trace) => terminalTaskStatuses.has(trace.status),\n schedule: Schedule.spaced(\"1 second\"),\n }),\n )\n})\n\nexport const threadContext = Effect.fn(\"Cohall.threadContext\")(function* (\n client: RelayClient,\n threadId: ThreadIdType,\n) {\n return yield* client.threadContext(threadId)\n})\n",
17
17
  "import type { Device } from \"@cohall/protocol\"\n\nexport const deviceVersions = (devices: ReadonlyArray<Device>, localVersion: string) => ({\n local_version: localVersion,\n current: devices.filter((device) => device.version === localVersion).length,\n different: devices.filter((device) => device.version !== localVersion).length,\n devices: devices.map((device) => ({\n id: device.id,\n name: device.name,\n status: device.status,\n version: device.version,\n current: device.version === localVersion,\n })),\n})\n\nexport const allDeviceHealth = (devices: ReadonlyArray<Device>, localVersion: string) => {\n const summaries = devices.map((device) => {\n const warnings = [\n ...(device.status === \"offline\" ? [\"Device is offline\"] : []),\n ...(device.providers.length === 0 ? [\"No provider executable is available\"] : []),\n ...(device.version === localVersion\n ? []\n : [`Running Cohall ${device.version}; local CLI is ${localVersion}`]),\n ]\n return {\n id: device.id,\n name: device.name,\n hostname: device.hostname,\n platform: device.platform,\n architecture: device.architecture,\n status: device.status,\n version: device.version,\n providers: device.providers,\n workspaces: device.workspaces.map((workspace) => workspace.path),\n last_seen_at: device.lastSeenAt,\n warnings,\n }\n })\n return {\n healthy: summaries.length > 0 && summaries.every((device) => device.warnings.length === 0),\n total: devices.length,\n online: devices.filter((device) => device.status === \"online\").length,\n busy: devices.filter((device) => device.status === \"busy\").length,\n offline: devices.filter((device) => device.status === \"offline\").length,\n warnings: summaries.length === 0 ? [\"No Cohall devices are registered\"] : [],\n devices: summaries,\n }\n}\n",
18
- "import { Bot, type Task } from \"@cohall/protocol\"\nimport { Effect, Schedule, Schema } from \"effect\"\nimport { open } from \"node:fs/promises\"\nimport { isIP } from \"node:net\"\nimport { claimBotDispatch, prepareBotReply, readBotReply } from \"./bot-replies.ts\"\n\nconst maxResponseBytes = 4 * 1024 * 1024\nconst maxDiscoveryBytes = 64 * 1024\nconst text = Schema.NonEmptyString\nconst Discovery = Schema.Struct({\n port: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 65_535 })),\n host: Schema.optionalKey(text),\n scheme: Schema.optionalKey(Schema.Literals([\"http\", \"https\"])),\n token: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(16_384))),\n})\nconst Agent = Schema.Struct({\n id: Bot.fields.id,\n name: Bot.fields.name,\n description: Schema.optionalKey(Schema.String),\n isGroup: Schema.optionalKey(Schema.Boolean),\n})\nconst Roster = Schema.Array(Agent).check(Schema.isMaxLength(1024))\nconst Acceptance = Schema.Union([\n Schema.Struct({ outcome: Schema.Literals([\"not-found\", \"unknown-durability\"]) }),\n Schema.Struct({\n outcome: Schema.Literal(\"found\"),\n record: Schema.Struct({\n status: Schema.Literals([\"accepted\", \"pending\", \"rejected\"]),\n }),\n }),\n])\nconst SendResult = Schema.Struct({ accepted: Schema.Literal(true) })\nclass GatewayError extends Error {}\n\nconst decode = <S extends Schema.ConstraintDecoder<unknown>>(\n schema: S,\n value: unknown,\n label: string,\n): S[\"Type\"] => {\n const result = Schema.decodeUnknownResult(schema)(value)\n if (result._tag === \"Failure\") throw new GatewayError(`Grok Bot returned an invalid ${label}`)\n return result.success\n}\n\nconst readConnection = async (path: string) => {\n const value = await (async () => {\n const file = await open(path, \"r\")\n try {\n const buffer = Buffer.alloc(maxDiscoveryBytes + 1)\n const { bytesRead } = await file.read(buffer, 0, buffer.length, 0)\n if (bytesRead > maxDiscoveryBytes) throw new Error(\"Discovery file exceeds its size limit\")\n return decode(\n Discovery,\n JSON.parse(buffer.subarray(0, bytesRead).toString(\"utf8\")),\n \"discovery file\",\n )\n } finally {\n await file.close()\n }\n })().catch(() => {\n throw new Error(\n \"Cannot read Grok Bot gateway discovery; check its configured file and running gateway\",\n )\n })\n const host = value.host ?? \"127.0.0.1\"\n const normalized =\n host === \"0.0.0.0\" || host === \"localhost\"\n ? \"127.0.0.1\"\n : host === \"::\" || host === \"::1\" || host === \"[::1]\"\n ? \"[::1]\"\n : host\n if (!(normalized === \"[::1]\" || (isIP(normalized) === 4 && normalized.startsWith(\"127.\")))) {\n throw new Error(\"Grok Bot gateway must use a loopback address on this device\")\n }\n return { url: `${value.scheme ?? \"http\"}://${normalized}:${value.port}`, token: value.token }\n}\n\ntype Connection = Awaited<ReturnType<typeof readConnection>>\n\nconst rpc = async <S extends Schema.ConstraintDecoder<unknown>>(\n connection: Connection,\n method: string,\n args: object,\n schema: S,\n signal?: AbortSignal,\n): Promise<S[\"Type\"]> => {\n const controller = new AbortController()\n const deadline = setTimeout(() => controller.abort(), 20_000)\n const combined =\n signal === undefined ? controller.signal : AbortSignal.any([signal, controller.signal])\n try {\n const response = await fetch(`${connection.url}/api/${method}`, {\n method: \"POST\",\n redirect: \"error\",\n headers: {\n \"content-type\": \"application/json\",\n \"x-sand-slim-avatars\": \"1\",\n ...(connection.token === undefined || connection.token.length === 0\n ? {}\n : { authorization: `Bearer ${connection.token}` }),\n },\n body: JSON.stringify(args),\n signal: combined,\n })\n if (!response.ok) {\n await response.body?.cancel()\n throw new GatewayError(`Grok Bot ${method} failed (HTTP ${response.status})`)\n }\n if (response.body === null) throw new GatewayError(\"Grok Bot returned an empty response\")\n const reader = response.body.getReader()\n const chunks: Array<Uint8Array> = []\n let size = 0\n try {\n for (;;) {\n const chunk = await reader.read()\n if (chunk.done) break\n size += chunk.value.byteLength\n if (size > maxResponseBytes) throw new GatewayError(\"Grok Bot response exceeded 4 MiB\")\n chunks.push(chunk.value)\n }\n } finally {\n await reader.cancel().catch(() => undefined)\n reader.releaseLock()\n }\n let json: unknown\n try {\n json = JSON.parse(Buffer.concat(chunks, size).toString(\"utf8\"))\n } catch {\n throw new GatewayError(`Grok Bot ${method} returned invalid JSON`)\n }\n return decode(schema, json, `${method} response`)\n } catch (cause) {\n // Fetch errors and decoder failures can contain bearer tokens or private response bodies.\n if (signal?.aborted)\n throw new Error(\"Stopped waiting for Grok Bot; its run may still be active\")\n if (cause instanceof GatewayError) throw cause\n throw new Error(`Grok Bot ${method} failed; check gateway availability and compatibility`)\n } finally {\n clearTimeout(deadline)\n }\n}\n\nexport const discoverGrokBots = async (path: string): Promise<ReadonlyArray<Bot>> => {\n const connection = await readConnection(path)\n const roster = await rpc(connection, \"listAgents\", {}, Roster)\n const bots = roster.filter((agent) => agent.isGroup !== true)\n if (bots.length > 256) throw new Error(\"Grok Bot discovery exceeds Cohall's limit of 256 bots\")\n if (new Set(bots.map((bot) => bot.id)).size !== bots.length) {\n throw new Error(\"Grok Bot returned duplicate bot identities\")\n }\n return bots.map(({ id, name, description }) => ({\n id,\n name,\n ...(description === undefined ? {} : { description: description.slice(0, 512) }),\n }))\n}\n\nconst poll = async <A>(pass: () => Promise<A | undefined>, signal: AbortSignal): Promise<A> => {\n const result = await Effect.runPromise(\n Effect.tryPromise({ try: pass, catch: (cause) => cause }).pipe(\n Effect.repeat({\n schedule: Schedule.spaced(\"1 second\"),\n until: (value) => value !== undefined,\n }),\n ),\n { signal },\n )\n if (result === undefined) throw new Error(\"Grok Bot polling ended before a result\")\n return result\n}\n\nconst timeoutMessage =\n \"Timed out waiting for the bot to reply through Cohall; the bot may still be running.\"\n\nconst requireTime = (deadline: number): void => {\n if (Date.now() >= deadline) throw new Error(timeoutMessage)\n}\n\nconst finishReply = (\n reply: NonNullable<Awaited<ReturnType<typeof readBotReply>>>,\n): { result: string } => {\n if (reply.error !== undefined) throw new Error(reply.error)\n if (reply.result === undefined) throw new Error(\"Grok Bot returned an invalid Cohall reply\")\n return { result: reply.result }\n}\n\nconst taskPrompt = (task: Task, command: string): string =>\n [\n task.prompt,\n task.context === undefined ? \"\" : `Context:\\n${task.context}`,\n `This request came through Cohall. Thread: ${task.threadId}. Task: ${task.id}.`,\n `You may use your own tools and delegate work to another Cohall device when the request calls for it. Discover devices with: ${command} devices`,\n `Delegation example: ${command} delegate --thread ${task.threadId} --parent ${task.id} --target @device --provider codex --prompt 'Concrete task' --context 'Relevant context'`,\n \"When finished, hand the final answer back to Cohall so it reaches the requesting device. Write it to a UTF-8 file on this computer, then run:\",\n `${command} reply ${task.id} --message-file /absolute/path/to/your-answer.txt`,\n `Alternatively pipe your answer into: ${command} reply ${task.id} --message -`,\n `If you cannot complete this task, report the reason with: ${command} reply ${task.id} --error 'Reason'`,\n \"The reply command must succeed. Then send the same answer in this chat. A normal chat message alone does not complete the Cohall task.\",\n ]\n .filter(Boolean)\n .join(\"\\n\\n\")\n\nexport const runGrokBot = async (\n path: string | undefined,\n task: Task,\n signal: AbortSignal,\n): Promise<{ result: string }> => {\n const existing = await readBotReply(task.id)\n if (existing !== undefined) return finishReply(existing)\n const { deadline, command, dispatched } = await prepareBotReply(task)\n requireTime(deadline)\n const waitForReply = () =>\n poll(async () => {\n const receipt = await readBotReply(task.id)\n if (receipt !== undefined) return finishReply(receipt)\n requireTime(deadline)\n return undefined\n }, signal)\n if (dispatched) return waitForReply()\n if (path === undefined)\n throw new Error(\"Configure this device's Grok Bot gateway discovery file first\")\n const agentId = task.botId\n if (agentId === undefined) throw new Error(\"Select a Grok Bot for this task\")\n const connection = await readConnection(path)\n const lookup = () =>\n rpc(\n connection,\n \"promptAcceptanceStatus\",\n { accountSlot: \"host\", agentId, clientNonce: task.id },\n Acceptance,\n signal,\n )\n let acceptance = await lookup()\n if (acceptance.outcome === \"unknown-durability\")\n throw new Error(\n \"Grok Bot cannot confirm whether this task was accepted; check its conversation before retrying\",\n )\n if (acceptance.outcome === \"not-found\") {\n const receipt = await readBotReply(task.id)\n if (receipt !== undefined) return finishReply(receipt)\n requireTime(deadline)\n const roster = await rpc(connection, \"listAgents\", {}, Roster, signal)\n if (!roster.some((row) => row.id === agentId && row.isGroup !== true)) {\n throw new Error(\"The selected Grok Bot no longer exists on this device\")\n }\n requireTime(deadline)\n acceptance = await lookup()\n if (acceptance.outcome === \"not-found\") {\n requireTime(deadline)\n if (!(await claimBotDispatch(task.id))) {\n return waitForReply()\n }\n try {\n await rpc(\n connection,\n \"sendPrompt\",\n {\n agentId,\n prompt: taskPrompt(task, command),\n clientNonce: task.id,\n directAddressedAcceptance: true,\n },\n SendResult,\n signal,\n )\n } catch {\n if (signal.aborted)\n throw new Error(\"Stopped waiting for Grok Bot; its run may still be active\")\n const receipt = await readBotReply(task.id)\n if (receipt !== undefined) return finishReply(receipt)\n const reconciled = await lookup().catch(() => undefined)\n if (reconciled?.outcome === \"found\" && reconciled.record.status === \"rejected\")\n throw new Error(\"Grok Bot rejected this task; check its conversation\")\n return waitForReply()\n }\n }\n }\n if (acceptance.outcome === \"unknown-durability\")\n throw new Error(\"Grok Bot cannot confirm task acceptance; the prompt was not resent\")\n if (acceptance.outcome === \"found\" && acceptance.record.status === \"rejected\")\n throw new Error(\"Grok Bot rejected this task; check its conversation\")\n return waitForReply()\n}\n",
18
+ "import { Bot, type Task } from \"@cohall/protocol\"\nimport { Effect, Schedule, Schema } from \"effect\"\nimport { open } from \"node:fs/promises\"\nimport { isIP } from \"node:net\"\nimport { claimBotDispatch, prepareBotReply, readBotReply } from \"./bot-replies.ts\"\n\nconst maxResponseBytes = 4 * 1024 * 1024\nconst maxDiscoveryBytes = 64 * 1024\nconst text = Schema.NonEmptyString\nconst Discovery = Schema.Struct({\n port: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 65_535 })),\n host: Schema.optionalKey(text),\n scheme: Schema.optionalKey(Schema.Literals([\"http\", \"https\"])),\n token: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(16_384))),\n})\nconst Agent = Schema.Struct({\n id: Bot.fields.id,\n name: Bot.fields.name,\n description: Schema.optionalKey(Schema.String),\n isGroup: Schema.optionalKey(Schema.Boolean),\n})\nconst Roster = Schema.Array(Agent).check(Schema.isMaxLength(1024))\nconst Acceptance = Schema.Union([\n Schema.Struct({ outcome: Schema.Literals([\"not-found\", \"unknown-durability\"]) }),\n Schema.Struct({\n outcome: Schema.Literal(\"found\"),\n record: Schema.Struct({\n status: Schema.Literals([\"accepted\", \"pending\", \"rejected\"]),\n }),\n }),\n])\nconst SendResult = Schema.Struct({ accepted: Schema.Literal(true) })\nclass GatewayError extends Error {}\n\nconst decode = <S extends Schema.ConstraintDecoder<unknown>>(\n schema: S,\n value: unknown,\n label: string,\n): S[\"Type\"] => {\n const result = Schema.decodeUnknownResult(schema)(value)\n if (result._tag === \"Failure\") throw new GatewayError(`Grok Bot returned an invalid ${label}`)\n return result.success\n}\n\nconst readConnection = async (path: string) => {\n const value = await (async () => {\n const file = await open(path, \"r\")\n try {\n const buffer = Buffer.alloc(maxDiscoveryBytes + 1)\n const { bytesRead } = await file.read(buffer, 0, buffer.length, 0)\n if (bytesRead > maxDiscoveryBytes) throw new Error(\"Discovery file exceeds its size limit\")\n return decode(\n Discovery,\n JSON.parse(buffer.subarray(0, bytesRead).toString(\"utf8\")),\n \"discovery file\",\n )\n } finally {\n await file.close()\n }\n })().catch(() => {\n throw new Error(\n \"Cannot read Grok Bot gateway discovery; check its configured file and running gateway\",\n )\n })\n const host = value.host ?? \"127.0.0.1\"\n const normalized =\n host === \"0.0.0.0\" || host === \"localhost\"\n ? \"127.0.0.1\"\n : host === \"::\" || host === \"::1\" || host === \"[::1]\"\n ? \"[::1]\"\n : host\n if (!(normalized === \"[::1]\" || (isIP(normalized) === 4 && normalized.startsWith(\"127.\")))) {\n throw new Error(\"Grok Bot gateway must use a loopback address on this device\")\n }\n return { url: `${value.scheme ?? \"http\"}://${normalized}:${value.port}`, token: value.token }\n}\n\ntype Connection = Awaited<ReturnType<typeof readConnection>>\n\nconst rpc = async <S extends Schema.ConstraintDecoder<unknown>>(\n connection: Connection,\n method: string,\n args: object,\n schema: S,\n signal?: AbortSignal,\n): Promise<S[\"Type\"]> => {\n const controller = new AbortController()\n const deadline = setTimeout(() => controller.abort(), 20_000)\n const combined =\n signal === undefined ? controller.signal : AbortSignal.any([signal, controller.signal])\n try {\n const response = await fetch(`${connection.url}/api/${method}`, {\n method: \"POST\",\n redirect: \"error\",\n headers: {\n \"content-type\": \"application/json\",\n \"x-sand-slim-avatars\": \"1\",\n ...(connection.token === undefined || connection.token.length === 0\n ? {}\n : { authorization: `Bearer ${connection.token}` }),\n },\n body: JSON.stringify(args),\n signal: combined,\n })\n if (!response.ok) {\n await response.body?.cancel()\n throw new GatewayError(`Grok Bot ${method} failed (HTTP ${response.status})`)\n }\n if (response.body === null) throw new GatewayError(\"Grok Bot returned an empty response\")\n const reader = response.body.getReader()\n const chunks: Array<Uint8Array> = []\n let size = 0\n try {\n for (;;) {\n const chunk = await reader.read()\n if (chunk.done) break\n size += chunk.value.byteLength\n if (size > maxResponseBytes) throw new GatewayError(\"Grok Bot response exceeded 4 MiB\")\n chunks.push(chunk.value)\n }\n } finally {\n await reader.cancel().catch(() => undefined)\n reader.releaseLock()\n }\n let json: unknown\n try {\n json = JSON.parse(Buffer.concat(chunks, size).toString(\"utf8\"))\n } catch {\n throw new GatewayError(`Grok Bot ${method} returned invalid JSON`)\n }\n return decode(schema, json, `${method} response`)\n } catch (cause) {\n // Fetch errors and decoder failures can contain bearer tokens or private response bodies.\n if (signal?.aborted)\n throw new Error(\"Stopped waiting for Grok Bot; its run may still be active\")\n if (cause instanceof GatewayError) throw cause\n throw new Error(`Grok Bot ${method} failed; check gateway availability and compatibility`)\n } finally {\n clearTimeout(deadline)\n }\n}\n\nexport const discoverGrokBots = async (path: string): Promise<ReadonlyArray<Bot>> => {\n const connection = await readConnection(path)\n const roster = await rpc(connection, \"listAgents\", {}, Roster)\n const bots = roster.filter((agent) => agent.isGroup !== true)\n if (bots.length > 256) throw new Error(\"Grok Bot discovery exceeds Cohall's limit of 256 bots\")\n if (new Set(bots.map((bot) => bot.id)).size !== bots.length) {\n throw new Error(\"Grok Bot returned duplicate bot identities\")\n }\n return bots.map(({ id, name, description }) => ({\n id,\n name,\n ...(description === undefined ? {} : { description: description.slice(0, 512) }),\n }))\n}\n\nconst poll = <A>(pass: (signal: AbortSignal) => Promise<A | undefined>, intervalMs = 1000) =>\n Effect.tryPromise({ try: pass, catch: (cause) => cause }).pipe(\n Effect.repeat({\n schedule: Schedule.spaced(intervalMs),\n until: (value) => value !== undefined,\n }),\n )\n\nconst timeoutMessage =\n \"Timed out waiting for the bot to reply through Cohall; the bot may still be running.\"\n\nconst requireTime = (deadline: number): void => {\n if (Date.now() >= deadline) throw new Error(timeoutMessage)\n}\n\nconst finishReply = (\n reply: NonNullable<Awaited<ReturnType<typeof readBotReply>>>,\n): { result: string } => {\n if (reply.error !== undefined) throw new Error(reply.error)\n if (reply.result === undefined) throw new Error(\"Grok Bot returned an invalid Cohall reply\")\n return { result: reply.result }\n}\n\nconst taskPrompt = (task: Task, command: string): string =>\n [\n task.prompt,\n task.context === undefined ? \"\" : `Context:\\n${task.context}`,\n `This request came through Cohall. Thread: ${task.threadId}. Task: ${task.id}.`,\n `You may use your own tools and delegate work to another Cohall device when the request calls for it. Discover devices with: ${command} devices`,\n `Delegation example: ${command} delegate --thread ${task.threadId} --parent ${task.id} --target @device --provider codex --prompt 'Concrete task' --context 'Relevant context'`,\n \"When finished, hand the final answer back to Cohall so it reaches the requesting device. Write it to a UTF-8 file on this computer, then run:\",\n `${command} reply ${task.id} --message-file /absolute/path/to/your-answer.txt`,\n `Alternatively pipe your answer into: ${command} reply ${task.id} --message -`,\n `If you cannot complete this task, report the reason with: ${command} reply ${task.id} --error 'Reason'`,\n \"The reply command must succeed. Then send the same answer in this chat. A normal chat message alone does not complete the Cohall task.\",\n ]\n .filter(Boolean)\n .join(\"\\n\\n\")\n\nexport const runGrokBot = async (\n path: string | undefined,\n task: Task,\n signal: AbortSignal,\n): Promise<{ result: string }> => {\n const existing = await readBotReply(task.id)\n if (existing !== undefined) return finishReply(existing)\n const { deadline, command, dispatched } = await prepareBotReply(task)\n requireTime(deadline)\n const agentId = task.botId\n if (agentId === undefined) throw new Error(\"Select a Grok Bot for this task\")\n const lookup = async (lookupSignal = signal) => {\n if (path === undefined)\n throw new Error(\"Configure this device's Grok Bot gateway discovery file first\")\n return rpc(\n await readConnection(path),\n \"promptAcceptanceStatus\",\n { accountSlot: \"host\", agentId, clientNonce: task.id },\n Acceptance,\n lookupSignal,\n )\n }\n const waitForReply = (reconcile = false) => {\n const receipt = poll(async () => {\n const receipt = await readBotReply(task.id)\n if (receipt !== undefined) return finishReply(receipt)\n requireTime(deadline)\n return undefined\n })\n if (!reconcile || path === undefined) return Effect.runPromise(receipt, { signal })\n // Acceptance ends reconciliation; only the local reply completes the task.\n const acceptance = poll(async (lookupSignal) => {\n const current = await lookup(lookupSignal).catch(() => undefined)\n if (current?.outcome !== \"found\") return undefined\n if (current.record.status === \"rejected\")\n throw new Error(\"Grok Bot rejected this task; check its conversation\")\n return current.record.status === \"accepted\" ? true : undefined\n }, 5000).pipe(Effect.andThen(Effect.never))\n return Effect.runPromise(Effect.raceFirst(receipt, acceptance), { signal })\n }\n if (dispatched) return waitForReply(true)\n if (path === undefined)\n throw new Error(\"Configure this device's Grok Bot gateway discovery file first\")\n const connection = await readConnection(path)\n let acceptance = await lookup()\n if (acceptance.outcome === \"unknown-durability\")\n throw new Error(\n \"Grok Bot cannot confirm whether this task was accepted; check its conversation before retrying\",\n )\n if (acceptance.outcome === \"not-found\") {\n const receipt = await readBotReply(task.id)\n if (receipt !== undefined) return finishReply(receipt)\n requireTime(deadline)\n const roster = await rpc(connection, \"listAgents\", {}, Roster, signal)\n if (!roster.some((row) => row.id === agentId && row.isGroup !== true)) {\n throw new Error(\"The selected Grok Bot no longer exists on this device\")\n }\n requireTime(deadline)\n acceptance = await lookup()\n if (acceptance.outcome === \"not-found\") {\n requireTime(deadline)\n if (!(await claimBotDispatch(task.id))) {\n return waitForReply(true)\n }\n try {\n await rpc(\n connection,\n \"sendPrompt\",\n {\n agentId,\n prompt: taskPrompt(task, command),\n clientNonce: task.id,\n directAddressedAcceptance: true,\n },\n SendResult,\n signal,\n )\n } catch {\n if (signal.aborted)\n throw new Error(\"Stopped waiting for Grok Bot; its run may still be active\")\n const receipt = await readBotReply(task.id)\n if (receipt !== undefined) return finishReply(receipt)\n return waitForReply(true)\n }\n return waitForReply()\n }\n }\n if (acceptance.outcome === \"unknown-durability\")\n throw new Error(\"Grok Bot cannot confirm task acceptance; the prompt was not resent\")\n if (acceptance.outcome === \"found\" && acceptance.record.status === \"rejected\")\n throw new Error(\"Grok Bot rejected this task; check its conversation\")\n return waitForReply(acceptance.outcome === \"found\" && acceptance.record.status === \"pending\")\n}\n",
19
19
  "import { BotId, TaskId, ThreadId, type Task } from \"@cohall/protocol\"\nimport { Schema } from \"effect\"\nimport { randomUUID } from \"node:crypto\"\nimport { chmod, link, mkdir, open, unlink } from \"node:fs/promises\"\nimport { dirname, join } from \"node:path\"\nimport { platform } from \"node:os\"\nimport { configurationPath } from \"./config.ts\"\n\nconst replyLifetimeMs = 6 * 60 * 60 * 1_000\nconst Pending = Schema.Struct({\n taskId: TaskId,\n botId: BotId,\n threadId: ThreadId,\n deadline: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),\n})\nconst Dispatch = Schema.Struct({ taskId: TaskId })\nconst Reply = Schema.Union([\n Schema.Struct({\n result: Schema.String.check(Schema.isMaxLength(131_072)),\n error: Schema.optionalKey(Schema.Never),\n }),\n Schema.Struct({\n error: Schema.NonEmptyString.check(Schema.isMaxLength(16_384)),\n result: Schema.optionalKey(Schema.Never),\n }),\n])\nexport type BotReply = typeof Reply.Type\nconst Receipt = Schema.Struct({\n taskId: TaskId,\n submittedAt: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),\n reply: Reply,\n})\n\nconst isMissing = (cause: unknown) =>\n cause instanceof Error && \"code\" in cause && cause.code === \"ENOENT\"\nconst alreadyExists = (cause: unknown) =>\n cause instanceof Error && \"code\" in cause && cause.code === \"EEXIST\"\n\nconst paths = (taskId: TaskId) => {\n const id = Schema.decodeUnknownSync(TaskId)(taskId)\n const directory = join(dirname(configurationPath()), \"bot-replies\")\n return {\n directory,\n pending: join(directory, `${id}.pending.json`),\n receipt: join(directory, `${id}.reply.json`),\n dispatch: join(directory, `${id}.dispatch.json`),\n }\n}\n\nconst readJson = async (path: string, limit: number): Promise<unknown | undefined> => {\n const file = await open(path, \"r\").catch((cause: unknown) => {\n if (isMissing(cause)) return undefined\n throw cause\n })\n if (file === undefined) return undefined\n try {\n const buffer = Buffer.alloc(limit + 1)\n let size = 0\n while (size < buffer.length) {\n const { bytesRead } = await file.read(buffer, size, buffer.length - size, size)\n if (bytesRead === 0) break\n size += bytesRead\n }\n if (size > limit) throw new Error(\"Bot reply record exceeds its size limit\")\n return JSON.parse(buffer.subarray(0, size).toString(\"utf8\"))\n } catch {\n throw new Error(\"Invalid local bot reply record\")\n } finally {\n await file.close()\n }\n}\n\nconst pendingReply = async (taskId: TaskId) => {\n const value = await readJson(paths(taskId).pending, 4096)\n if (value === undefined) return undefined\n const decoded = Schema.decodeUnknownResult(Pending)(value)\n if (decoded._tag === \"Failure\" || decoded.success.taskId !== taskId) {\n throw new Error(\"Invalid local bot reply manifest\")\n }\n return decoded.success\n}\n\nconst publish = async (path: string, value: object): Promise<boolean> => {\n const temporary = `${path}.${randomUUID()}.tmp`\n const file = await open(temporary, \"wx\", 0o600)\n try {\n try {\n await file.writeFile(`${JSON.stringify(value)}\\n`, \"utf8\")\n await file.sync()\n } finally {\n await file.close()\n }\n await link(temporary, path)\n if (platform() !== \"win32\") {\n const directory = await open(dirname(path), \"r\")\n try {\n await directory.sync()\n } finally {\n await directory.close()\n }\n }\n return true\n } catch (cause) {\n if (alreadyExists(cause)) return false\n throw cause\n } finally {\n await unlink(temporary)\n }\n}\n\nconst shellQuote = (value: string) => `'${value.replaceAll(\"'\", \"'\\\\''\")}'`\n\nexport const prepareBotReply = async (\n task: Task,\n): Promise<{ deadline: number; command: string; dispatched: boolean }> => {\n if (task.provider !== \"grok-bot\" || task.botId === undefined) {\n throw new Error(\"Only a named Grok Bot task can receive a bot reply\")\n }\n const files = paths(task.id)\n await mkdir(files.directory, { recursive: true, mode: 0o700 })\n await chmod(files.directory, 0o700)\n const record = Pending.make({\n taskId: task.id,\n botId: task.botId,\n threadId: task.threadId,\n deadline: Date.now() + replyLifetimeMs,\n })\n await publish(files.pending, record)\n const pending = await pendingReply(task.id)\n if (pending === undefined || pending.botId !== task.botId || pending.threadId !== task.threadId) {\n throw new Error(\"Bot reply manifest does not match this task\")\n }\n const dispatch = await readJson(files.dispatch, 4096)\n if (dispatch !== undefined) {\n const decoded = Schema.decodeUnknownResult(Dispatch)(dispatch)\n if (decoded._tag === \"Failure\" || decoded.success.taskId !== task.id) {\n throw new Error(\"Invalid local bot dispatch record\")\n }\n }\n return {\n deadline: pending.deadline,\n command: `COHALL_CONFIG=${shellQuote(configurationPath())} cohall`,\n dispatched: dispatch !== undefined,\n }\n}\n\nexport const claimBotDispatch = async (taskId: TaskId): Promise<boolean> => {\n const pending = await pendingReply(taskId)\n if (pending === undefined) throw new Error(\"No pending bot reply for this task\")\n if (Date.now() >= pending.deadline) throw new Error(\"Bot reply deadline has expired\")\n return publish(paths(taskId).dispatch, { taskId })\n}\n\nexport const readBotReply = async (taskId: TaskId): Promise<BotReply | undefined> => {\n const pending = await pendingReply(taskId)\n if (pending === undefined) return undefined\n const value = await readJson(paths(taskId).receipt, 1024 * 1024)\n if (value === undefined) return undefined\n const decoded = Schema.decodeUnknownResult(Receipt)(value)\n if (decoded._tag === \"Failure\" || decoded.success.taskId !== taskId) {\n throw new Error(\"Invalid local bot reply receipt\")\n }\n if (decoded.success.submittedAt >= pending.deadline) {\n throw new Error(\"Bot reply was submitted after its deadline\")\n }\n return decoded.success.reply\n}\n\nexport const writeBotReply = async (taskId: TaskId, reply: BotReply): Promise<void> => {\n const decoded = Schema.decodeUnknownResult(Reply)(reply)\n if (decoded._tag === \"Failure\") {\n throw new Error(\n \"Provide a result of at most 131072 characters or a nonempty error of at most 16384 characters\",\n )\n }\n const pending = await pendingReply(taskId)\n if (pending === undefined) throw new Error(\"No pending bot reply for this task\")\n const existing = await readBotReply(taskId)\n if (existing !== undefined) {\n if (JSON.stringify(existing) === JSON.stringify(decoded.success)) return\n throw new Error(\"A different reply has already been submitted for this task\")\n }\n const submittedAt = Date.now()\n if (submittedAt >= pending.deadline) throw new Error(\"Bot reply deadline has expired\")\n if (await publish(paths(taskId).receipt, { taskId, submittedAt, reply: decoded.success })) return\n const winner = await readBotReply(taskId)\n if (JSON.stringify(winner) !== JSON.stringify(decoded.success)) {\n throw new Error(\"A different reply has already been submitted for this task\")\n }\n}\n\nexport const cleanupBotReply = async (taskId: TaskId): Promise<void> => {\n const files = paths(taskId)\n for (const path of [files.pending, files.receipt, files.dispatch]) {\n await unlink(path).catch((cause: unknown) => {\n if (!isMissing(cause)) throw cause\n })\n }\n}\n",
20
20
  "import { exchangePairing } from \"@cohall/client\"\nimport { type Provider as ProviderName } from \"@cohall/protocol\"\nimport { Effect } from \"effect\"\nimport { hostname } from \"node:os\"\nimport { Writable } from \"node:stream\"\nimport { createInterface } from \"node:readline/promises\"\nimport {\n StoredConfiguration,\n credentialsForRelay,\n makeStoredConfiguration,\n normalizeRelayUrl,\n readStoredConfiguration,\n writeStoredConfiguration,\n} from \"./config.ts\"\n\nexport interface JoinOptions {\n readonly relayUrl: string\n readonly token: string\n readonly clientOnly: boolean\n readonly deviceName?: string\n readonly workspaces?: ReadonlyArray<string>\n readonly providers?: ReadonlyArray<ProviderName> | \"auto\"\n}\n\nexport interface JoinResult {\n readonly configuration: StoredConfiguration\n readonly roles: ReadonlyArray<\"client\" | \"device\">\n}\n\nexport const joinRelay = async (options: JoinOptions): Promise<JoinResult> => {\n const draft = await makeStoredConfiguration({\n relayUrl: options.relayUrl,\n ...(options.deviceName === undefined ? {} : { deviceName: options.deviceName }),\n ...(options.workspaces === undefined ? {} : { workspaces: options.workspaces }),\n ...(options.providers === undefined ? {} : { providers: options.providers }),\n })\n if (!options.clientOnly && draft.workspaces.length === 0) {\n throw new Error(\"At least one workspace is required when joining a device\")\n }\n\n const paired = await Effect.runPromise(exchangePairing(draft.relayUrl, { token: options.token }))\n const clientToken = paired.credentials.find(\n (credential) => credential.session.role === \"client\",\n )?.token\n const deviceCredential = paired.credentials.find(\n (credential) => credential.session.role === \"device\",\n )\n if (options.clientOnly && clientToken === undefined) {\n throw new Error(\"The pairing credential did not include client access\")\n }\n if (!options.clientOnly && deviceCredential === undefined) {\n throw new Error(\"The pairing credential did not include device access\")\n }\n\n const {\n clientToken: _retainedClientToken,\n deviceToken: _retainedDeviceToken,\n ...configurationDraft\n } = draft\n const configuration = StoredConfiguration.make({\n ...configurationDraft,\n deviceId: options.clientOnly\n ? configurationDraft.deviceId\n : (deviceCredential?.session.deviceId ?? configurationDraft.deviceId),\n ...(clientToken === undefined ? {} : { clientToken }),\n ...(options.clientOnly || deviceCredential === undefined\n ? {}\n : { deviceToken: deviceCredential.token }),\n })\n await writeStoredConfiguration(configuration)\n return {\n configuration,\n roles: options.clientOnly\n ? paired.credentials\n .map((credential) => credential.session.role)\n .filter((role) => role === \"client\")\n : paired.credentials.map((credential) => credential.session.role),\n }\n}\n\nexport interface Prompter {\n readonly answer: (label: string, fallback: string) => Promise<string>\n readonly secret: (label: string) => Promise<string>\n readonly close: () => void\n}\n\nexport const terminalPrompter = (): Prompter => {\n let muted = false\n const output = new Writable({\n write(chunk: Buffer | string, _encoding, callback) {\n if (!muted) {\n process.stderr.write(chunk)\n }\n callback()\n },\n })\n const terminal = createInterface({ input: process.stdin, output, terminal: true })\n return {\n answer: async (label, fallback) => {\n const value = (await terminal.question(`${label} [${fallback}]: `)).trim()\n return value || fallback\n },\n secret: async (label) => {\n const pending = terminal.question(`${label}: `)\n muted = true\n try {\n return (await pending).trim()\n } finally {\n muted = false\n process.stderr.write(\"\\n\")\n }\n },\n close: () => terminal.close(),\n }\n}\n\nexport interface GuidedSetupOptions {\n readonly relayUrl?: string\n readonly token?: string\n readonly clientOnly: boolean\n readonly deviceName?: string\n readonly workspaces: ReadonlyArray<string>\n readonly providers?: string\n readonly cwd: string\n}\n\nexport interface GuidedSetupInput {\n readonly relayUrl: string\n readonly token?: string\n readonly deviceName?: string\n readonly workspaces: ReadonlyArray<string>\n readonly providers: string\n readonly reusedConfiguration: boolean\n}\n\nexport const guidedSetupInput = async (\n options: GuidedSetupOptions,\n prompter: Prompter,\n): Promise<GuidedSetupInput> => {\n const existing = await readStoredConfiguration()\n const relayUrl = normalizeRelayUrl(\n options.relayUrl ??\n (await prompter.answer(\"Relay URL\", existing?.relayUrl ?? \"http://127.0.0.1:8787\")),\n )\n const credentials = credentialsForRelay(existing, relayUrl)\n const hasRequiredCredentials =\n credentials.clientToken !== undefined &&\n (options.clientOnly || credentials.deviceToken !== undefined)\n const workspaces = options.clientOnly\n ? (existing?.workspaces ?? [])\n : options.workspaces.length > 0\n ? options.workspaces\n : [await prompter.answer(\"Workspace root\", existing?.workspaces[0] ?? options.cwd)]\n const deviceName = options.clientOnly\n ? undefined\n : (options.deviceName ??\n (await prompter.answer(\"Device name\", existing?.deviceName ?? hostname())))\n const providers =\n options.providers ??\n (options.clientOnly\n ? \"auto\"\n : await prompter.answer(\"Providers\", existing?.providers?.join(\",\") ?? \"auto\"))\n const token =\n options.token ?? (hasRequiredCredentials ? undefined : await prompter.secret(\"Pairing token\"))\n if (!hasRequiredCredentials && (token === undefined || token.length === 0)) {\n throw new Error(\"A pairing token is required\")\n }\n if (token !== undefined && new TextEncoder().encode(token).byteLength > 256) {\n throw new Error(\"Pairing token exceeds 256 bytes\")\n }\n return {\n relayUrl,\n ...(token === undefined ? {} : { token }),\n ...(deviceName === undefined ? {} : { deviceName }),\n workspaces,\n providers,\n reusedConfiguration: hasRequiredCredentials && token === undefined,\n }\n}\n",
21
21
  "import { RelayClient } from \"@cohall/client\"\nimport { SocketEvent, Timestamp, version } from \"@cohall/protocol\"\nimport { Effect, Schema } from \"effect\"\nimport { createHash } from \"node:crypto\"\nimport { createReadStream } from \"node:fs\"\nimport {\n access,\n chmod,\n copyFile,\n lstat,\n mkdir,\n mkdtemp,\n readFile,\n realpath,\n rename,\n rm,\n stat,\n writeFile,\n} from \"node:fs/promises\"\nimport { basename, dirname, join, resolve } from \"node:path\"\nimport { backup as sqliteBackup, DatabaseSync } from \"node:sqlite\"\nimport { WebSocket } from \"ws\"\nimport {\n StoredConfiguration,\n normalizeRelayUrl,\n readStoredConfiguration,\n relayDataDirectory,\n writeStoredConfiguration,\n} from \"./config.ts\"\nimport { restartDeviceService, type DeviceServiceRestart } from \"./service.ts\"\n\nconst sha256 = Schema.String.check(\n Schema.isPattern(/^[a-f0-9]{64}$/, { expected: \"a lowercase SHA-256 digest\" }),\n)\n\nconst RelayBackupManifest = Schema.Struct({\n formatVersion: Schema.Literal(1),\n cohallVersion: Schema.NonEmptyString,\n createdAt: Timestamp,\n databaseSha256: sha256,\n ownerTokenSha256: sha256,\n})\ninterface RelayBackupManifest extends Schema.Schema.Type<typeof RelayBackupManifest> {}\n\nconst exists = (path: string): Promise<boolean> =>\n access(path)\n .then(() => true)\n .catch(() => false)\n\nconst digest = async (path: string): Promise<string> => {\n const hash = createHash(\"sha256\")\n for await (const chunk of createReadStream(path)) {\n hash.update(chunk)\n }\n return hash.digest(\"hex\")\n}\n\nconst verifyBackupMember = async (path: string, maximumBytes?: number): Promise<void> => {\n const metadata = await lstat(path)\n if (!metadata.isFile()) {\n throw new Error(`Relay backup member must be a regular file: ${path}`)\n }\n if (maximumBytes !== undefined && metadata.size > maximumBytes) {\n throw new Error(`Relay backup member exceeds ${maximumBytes} bytes: ${path}`)\n }\n}\n\nconst readManifest = async (path: string): Promise<RelayBackupManifest> => {\n await verifyBackupMember(path, 16_384)\n return Schema.decodeUnknownSync(RelayBackupManifest)(JSON.parse(await readFile(path, \"utf8\")))\n}\n\nconst verifyBackupDestinationParent = async (path: string): Promise<void> => {\n if (process.platform === \"win32\") {\n return\n }\n for (let current = await realpath(path); ; current = dirname(current)) {\n const metadata = await stat(current)\n const writableByOthers = (metadata.mode & 0o022) !== 0\n const sticky = (metadata.mode & 0o1000) !== 0\n if (writableByOthers && !sticky) {\n throw new Error(\n `Backup destination ancestors must not be group- or world-writable unless they use the sticky bit: ${current}`,\n )\n }\n const parent = dirname(current)\n if (parent === current) {\n return\n }\n }\n}\n\nconst ownerToken = async (dataDirectory: string): Promise<string> => {\n const path = join(dataDirectory, \"owner-token\")\n const configured = process.env.COHALL_TOKEN\n if (configured !== undefined) {\n return configured\n }\n if (!(await exists(path))) {\n throw new Error(`Relay owner token was not found at ${path}`)\n }\n if ((await stat(path)).size > 512) {\n throw new Error(\"Relay owner token file exceeds 512 bytes\")\n }\n return (await readFile(path, \"utf8\")).trim()\n}\n\nconst verifyDatabase = (path: string): void => {\n const database = new DatabaseSync(path, { readOnly: true })\n try {\n const result = database.prepare(\"PRAGMA quick_check\").get()\n if (result === undefined || Object.values(result)[0] !== \"ok\") {\n throw new Error(`SQLite integrity check failed for ${path}`)\n }\n } finally {\n database.close()\n }\n}\n\nexport interface RelayBackupResult {\n readonly backup_directory: string\n readonly database: string\n readonly created_at: Timestamp\n readonly warning: string\n}\n\nexport const backupRelay = async (destinationInput: string): Promise<RelayBackupResult> => {\n const sourceDirectory = relayDataDirectory()\n const sourceDatabase = join(sourceDirectory, \"cohall.db\")\n if (!(await exists(sourceDatabase))) {\n throw new Error(`Relay database was not found at ${sourceDatabase}`)\n }\n const destination = resolve(destinationInput)\n if (await exists(destination)) {\n throw new Error(`Backup destination already exists: ${destination}`)\n }\n await verifyBackupDestinationParent(dirname(destination))\n await mkdir(destination, { mode: 0o700 })\n try {\n const databasePath = join(destination, \"cohall.db\")\n const ownerTokenPath = join(destination, \"owner-token\")\n const database = new DatabaseSync(sourceDatabase, { readOnly: true })\n try {\n await sqliteBackup(database, databasePath)\n } finally {\n database.close()\n }\n verifyDatabase(databasePath)\n const token = await ownerToken(sourceDirectory)\n if (token.length < 32 || new TextEncoder().encode(token).byteLength > 512) {\n throw new Error(\"The relay owner token must contain between 32 and 512 bytes\")\n }\n await writeFile(ownerTokenPath, `${token}\\n`, { mode: 0o600 })\n await Promise.all([chmod(databasePath, 0o600), chmod(ownerTokenPath, 0o600)])\n const createdAt = Timestamp.make(new Date().toISOString())\n const manifest = RelayBackupManifest.make({\n formatVersion: 1,\n cohallVersion: version,\n createdAt,\n databaseSha256: await digest(databasePath),\n ownerTokenSha256: await digest(ownerTokenPath),\n })\n await writeFile(join(destination, \"manifest.json\"), `${JSON.stringify(manifest, null, 2)}\\n`, {\n mode: 0o600,\n })\n return {\n backup_directory: destination,\n database: databasePath,\n created_at: createdAt,\n warning:\n \"This backup contains relay credentials and task history. Transfer and store it privately.\",\n }\n } catch (cause) {\n await rm(destination, { recursive: true, force: true })\n throw cause\n }\n}\n\nexport interface RelayRestoreResult {\n readonly restored: true\n readonly data_directory: string\n readonly backup_version: string\n readonly next: string\n}\n\nexport const restoreRelay = async (sourceInput: string): Promise<RelayRestoreResult> => {\n const source = resolve(sourceInput)\n const sourceDatabase = join(source, \"cohall.db\")\n const sourceOwnerToken = join(source, \"owner-token\")\n const sourceManifest = join(source, \"manifest.json\")\n for (const path of [sourceDatabase, sourceOwnerToken, sourceManifest]) {\n if (!(await exists(path))) {\n throw new Error(`Relay backup is missing ${basename(path)}`)\n }\n }\n await Promise.all([\n verifyBackupMember(sourceDatabase),\n verifyBackupMember(sourceOwnerToken, 1_024),\n verifyBackupMember(sourceManifest, 16_384),\n ])\n\n const target = relayDataDirectory()\n if (await exists(target)) {\n throw new Error(\n `Relay data directory already exists: ${target}. Restore into a new COHALL_DATA_DIR.`,\n )\n }\n const parent = dirname(target)\n await mkdir(parent, { recursive: true, mode: 0o700 })\n const staging = await mkdtemp(join(parent, `.${basename(target)}.restore-`))\n let backupVersion = \"\"\n try {\n await chmod(staging, 0o700)\n const databasePath = join(staging, \"cohall.db\")\n const ownerTokenPath = join(staging, \"owner-token\")\n const manifestPath = join(staging, \"migration-manifest.json\")\n await Promise.all([\n copyFile(sourceDatabase, databasePath),\n copyFile(sourceOwnerToken, ownerTokenPath),\n copyFile(sourceManifest, manifestPath),\n ])\n await Promise.all([\n chmod(databasePath, 0o600),\n chmod(ownerTokenPath, 0o600),\n chmod(manifestPath, 0o600),\n ])\n const manifest = await readManifest(manifestPath)\n if (\n (await digest(databasePath)) !== manifest.databaseSha256 ||\n (await digest(ownerTokenPath)) !== manifest.ownerTokenSha256\n ) {\n throw new Error(\"Relay backup checksum verification failed\")\n }\n verifyDatabase(databasePath)\n const token = (await readFile(ownerTokenPath, \"utf8\")).trim()\n if (token.length < 32 || new TextEncoder().encode(token).byteLength > 512) {\n throw new Error(\"Relay backup contains an invalid owner token\")\n }\n backupVersion = manifest.cohallVersion\n await rename(staging, target)\n } catch (cause) {\n await rm(staging, { recursive: true, force: true })\n throw cause\n }\n return {\n restored: true,\n data_directory: target,\n backup_version: backupVersion,\n next: \"Start the relay at its new address, then run `cohall relay use <new-url>` on each client and device.\",\n }\n}\n\nconst websocketUrl = (relayUrl: string): string => {\n const url = new URL(relayUrl)\n url.protocol = url.protocol === \"https:\" ? \"wss:\" : \"ws:\"\n url.pathname = \"/ws/device\"\n return url.toString()\n}\n\nconst isLoopback = (url: URL): boolean =>\n url.hostname === \"localhost\" ||\n url.hostname === \"[::1]\" ||\n /^127(?:\\.\\d{1,3}){3}$/.test(url.hostname)\n\nconst verifyClientCredential = async (relayUrl: string, token: string): Promise<void> => {\n await Effect.runPromise(RelayClient.make({ baseUrl: relayUrl, token }).devices())\n}\n\nconst verifyDeviceCredential = (relayUrl: string, token: string): Promise<void> =>\n new Promise((resolvePromise, reject) => {\n const socket = new WebSocket(websocketUrl(relayUrl), {\n handshakeTimeout: 10_000,\n maxPayload: 1024 * 1024,\n perMessageDeflate: false,\n })\n let settled = false\n const finish = (error?: Error): void => {\n if (settled) {\n return\n }\n settled = true\n clearTimeout(timeout)\n socket.terminate()\n if (error === undefined) {\n resolvePromise()\n return\n }\n reject(error)\n }\n const timeout = setTimeout(\n () => finish(new Error(\"Timed out while verifying the device credential\")),\n 10_000,\n )\n socket.once(\"open\", () => {\n socket.send(JSON.stringify(SocketEvent.make({ _tag: \"Authenticate\", token })))\n })\n socket.on(\"message\", (data) => {\n try {\n const event = Schema.decodeUnknownSync(SocketEvent)(JSON.parse(data.toString()) as unknown)\n if (event._tag === \"Connected\") {\n finish()\n } else if (event._tag === \"Error\") {\n finish(new Error(event.message))\n }\n } catch (cause) {\n finish(new Error(`New relay returned an invalid device response: ${String(cause)}`))\n }\n })\n socket.once(\"error\", (cause) => finish(cause))\n socket.once(\"close\", () => finish(new Error(\"New relay rejected the stored device credential\")))\n })\n\nexport interface RelaySwitchResult {\n readonly updated: boolean\n readonly relay_url: string\n readonly verified_roles: ReadonlyArray<\"client\" | \"device\">\n readonly service: DeviceServiceRestart\n readonly warning?: string\n}\n\nexport const switchRelay = async (options: {\n readonly relayUrl: string\n readonly restart: boolean\n readonly allowHttp?: boolean\n readonly verifyClient?: (relayUrl: string, token: string) => Promise<void>\n readonly verifyDevice?: (relayUrl: string, token: string) => Promise<void>\n readonly restartService?: () => Promise<DeviceServiceRestart>\n}): Promise<RelaySwitchResult> => {\n if (process.env.COHALL_RELAY_URL !== undefined) {\n throw new Error(\"Unset COHALL_RELAY_URL before changing the stored relay URL\")\n }\n const configuration = await readStoredConfiguration()\n if (configuration === undefined) {\n throw new Error(\"This user has no stored Cohall configuration\")\n }\n const relayUrl = normalizeRelayUrl(options.relayUrl)\n const parsedRelayUrl = new URL(relayUrl)\n if (\n parsedRelayUrl.protocol === \"http:\" &&\n !isLoopback(parsedRelayUrl) &&\n options.allowHttp !== true\n ) {\n throw new Error(\n \"Refusing to send stored credentials over remote HTTP. Use HTTPS, or --allow-http only on an independently encrypted private network.\",\n )\n }\n const clientTokens = [configuration.clientToken, process.env.COHALL_CLIENT_TOKEN].filter(\n (token): token is string => token !== undefined,\n )\n const deviceTokens = [configuration.deviceToken, process.env.COHALL_DEVICE_TOKEN].filter(\n (token): token is string => token !== undefined,\n )\n if (clientTokens.length === 0 && deviceTokens.length === 0) {\n throw new Error(\"This configuration has no client or device credentials to verify\")\n }\n const roles: Array<\"client\" | \"device\"> = []\n if (clientTokens.length > 0) {\n for (const token of new Set(clientTokens)) {\n await (options.verifyClient ?? verifyClientCredential)(relayUrl, token)\n }\n roles.push(\"client\")\n }\n if (deviceTokens.length > 0) {\n for (const token of new Set(deviceTokens)) {\n await (options.verifyDevice ?? verifyDeviceCredential)(relayUrl, token)\n }\n roles.push(\"device\")\n }\n const updated = configuration.relayUrl !== relayUrl\n if (updated) {\n await writeStoredConfiguration(StoredConfiguration.make({ ...configuration, relayUrl }))\n }\n let service: DeviceServiceRestart = { running: false, restarted: false }\n let warning: string | undefined\n if (updated && options.restart && deviceTokens.length > 0) {\n service = await (options.restartService ?? restartDeviceService)().catch((cause: unknown) => {\n warning = `Relay URL changed, but the device service could not restart: ${cause instanceof Error ? cause.message : String(cause)}`\n return { running: true, restarted: false }\n })\n }\n return {\n updated,\n relay_url: relayUrl,\n verified_roles: roles,\n service,\n ...(warning === undefined ? {} : { warning }),\n }\n}\n",
22
22
  "import { execFile, type ExecFileException } from \"node:child_process\"\nimport { chmod, mkdir, realpath, writeFile } from \"node:fs/promises\"\nimport { homedir } from \"node:os\"\nimport { dirname, join } from \"node:path\"\nimport {\n packageInstallation,\n trustedExecutable,\n type CommandResult,\n type CommandRunner,\n} from \"./upgrade.ts\"\n\ninterface ServiceFile {\n readonly path: string\n readonly content: string\n readonly mode: number\n}\n\nexport interface DeviceServicePlan {\n readonly file: ServiceFile\n readonly commands: ReadonlyArray<{\n readonly command: string\n readonly arguments: ReadonlyArray<string>\n }>\n readonly note?: string\n}\n\nconst xml = (value: string): string =>\n value\n .replaceAll(\"&\", \"&amp;\")\n .replaceAll(\"<\", \"&lt;\")\n .replaceAll(\">\", \"&gt;\")\n .replaceAll('\"', \"&quot;\")\n .replaceAll(\"'\", \"&apos;\")\n\nconst systemdArgument = (value: string): string =>\n `\"${value.replaceAll(\"\\\\\", \"\\\\\\\\\").replaceAll('\"', '\\\\\"')}\"`\n\nexport const deviceServicePlan = (options: {\n readonly platform: NodeJS.Platform\n readonly entrypoint: string\n readonly home: string\n readonly uid?: number\n}): DeviceServicePlan => {\n if (options.platform === \"linux\") {\n const path = join(options.home, \".config\", \"systemd\", \"user\", \"cohall-device.service\")\n return {\n file: {\n path,\n mode: 0o600,\n content: `[Unit]\\nDescription=Cohall device agent\\nAfter=network-online.target\\nWants=network-online.target\\n\\n[Service]\\nType=simple\\nEnvironment=PATH=%h/.local/bin:%h/.npm-global/bin:%h/.bun/bin:%h/.local/share/pnpm:/usr/local/bin:/usr/bin:/bin\\nExecStart=${systemdArgument(options.entrypoint)} device\\nRestart=always\\nRestartSec=3\\nUMask=0077\\nNoNewPrivileges=true\\nPrivateTmp=true\\n\\n[Install]\\nWantedBy=default.target\\n`,\n },\n commands: [\n { command: \"systemctl\", arguments: [\"--user\", \"daemon-reload\"] },\n { command: \"systemctl\", arguments: [\"--user\", \"enable\", \"--now\", \"cohall-device.service\"] },\n ],\n note: \"The device starts after login. Run loginctl enable-linger $USER if it must run before login.\",\n }\n }\n if (options.platform === \"darwin\") {\n const label = \"com.cohall.device\"\n const path = join(options.home, \"Library\", \"LaunchAgents\", `${label}.plist`)\n const domain = `gui/${options.uid ?? 0}`\n return {\n file: {\n path,\n mode: 0o600,\n content: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\\n<plist version=\"1.0\">\\n<dict>\\n <key>Label</key>\\n <string>${label}</string>\\n <key>ProgramArguments</key>\\n <array>\\n <string>${xml(options.entrypoint)}</string>\\n <string>device</string>\\n </array>\\n <key>EnvironmentVariables</key>\\n <dict>\\n <key>PATH</key>\\n <string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>\\n </dict>\\n <key>RunAtLoad</key>\\n <true/>\\n <key>KeepAlive</key>\\n <dict>\\n <key>NetworkState</key>\\n <true/>\\n <key>SuccessfulExit</key>\\n <false/>\\n </dict>\\n <key>ThrottleInterval</key>\\n <integer>3</integer>\\n <key>ProcessType</key>\\n <string>Background</string>\\n</dict>\\n</plist>\\n`,\n },\n commands: [\n { command: \"launchctl\", arguments: [\"bootout\", domain, path] },\n { command: \"launchctl\", arguments: [\"bootstrap\", domain, path] },\n { command: \"launchctl\", arguments: [\"kickstart\", \"-k\", `${domain}/${label}`] },\n ],\n }\n }\n throw new Error(\"Automatic device service installation supports Linux and macOS\")\n}\n\nconst defaultRunner: CommandRunner = {\n run: async (command, arguments_, timeoutMs = 60_000) => {\n const executable = await trustedExecutable(command)\n return new Promise((resolve) => {\n execFile(\n executable,\n [...arguments_],\n { encoding: \"utf8\", maxBuffer: 1024 * 1024, timeout: timeoutMs, windowsHide: true },\n (error: ExecFileException | null, stdout, stderr) =>\n resolve({\n exitCode: typeof error?.code === \"number\" ? error.code : error === null ? 0 : 1,\n stdout,\n stderr,\n ...(error === null ? {} : { error: error.message }),\n }),\n )\n })\n },\n}\n\nconst checked = async (\n runner: CommandRunner,\n command: string,\n arguments_: ReadonlyArray<string>,\n allowFailure = false,\n): Promise<CommandResult> => {\n const result = await runner.run(command, arguments_, 60_000)\n if (result.exitCode === 0 || allowFailure) {\n return result\n }\n throw new Error(\n `${command} failed: ${result.stderr.trim() || result.stdout.trim() || result.error || `status ${result.exitCode}`}`,\n )\n}\n\nexport const installDeviceService = async (\n options: {\n readonly entrypoint?: string\n readonly platform?: NodeJS.Platform\n readonly home?: string\n readonly uid?: number\n readonly runner?: CommandRunner\n } = {},\n): Promise<{ readonly installed: string; readonly note?: string }> => {\n const entrypoint = await realpath(options.entrypoint ?? process.argv[1] ?? \"\")\n packageInstallation(entrypoint)\n const platform = options.platform ?? process.platform\n const runner = options.runner ?? defaultRunner\n if (platform === \"win32\") {\n const script = join(dirname(dirname(entrypoint)), \"deploy\", \"windows\", \"install-device.ps1\")\n await checked(runner, \"powershell.exe\", [\n \"-NoProfile\",\n \"-ExecutionPolicy\",\n \"Bypass\",\n \"-File\",\n script,\n ])\n return { installed: \"scheduled-task:Cohall Device\" }\n }\n const uid = options.uid ?? process.getuid?.()\n const plan = deviceServicePlan({\n platform,\n entrypoint,\n home: options.home ?? homedir(),\n ...(uid === undefined ? {} : { uid }),\n })\n await mkdir(dirname(plan.file.path), { recursive: true, mode: 0o700 })\n await writeFile(plan.file.path, plan.file.content, { mode: plan.file.mode })\n await chmod(plan.file.path, plan.file.mode)\n for (const [index, command] of plan.commands.entries()) {\n await checked(runner, command.command, command.arguments, platform === \"darwin\" && index === 0)\n }\n return {\n installed: plan.file.path,\n ...(plan.note === undefined ? {} : { note: plan.note }),\n }\n}\n\nexport interface DeviceServiceRestart {\n readonly running: boolean\n readonly restarted: boolean\n readonly service?: string\n}\n\nexport const restartDeviceService = async (\n options: {\n readonly platform?: NodeJS.Platform\n readonly uid?: number\n readonly runner?: CommandRunner\n } = {},\n): Promise<DeviceServiceRestart> => {\n const platform = options.platform ?? process.platform\n const runner = options.runner ?? defaultRunner\n if (platform === \"linux\") {\n const service = \"cohall-device.service\"\n const check = await runner.run(\"systemctl\", [\"--user\", \"is-active\", \"--quiet\", service], 10_000)\n if (check.exitCode !== 0) {\n return { running: false, restarted: false }\n }\n await checked(runner, \"systemctl\", [\"--user\", \"restart\", service])\n return { running: true, restarted: true, service }\n }\n if (platform === \"darwin\") {\n const service = \"com.cohall.device\"\n const target = `gui/${options.uid ?? process.getuid?.() ?? 0}/${service}`\n const check = await runner.run(\"launchctl\", [\"print\", target], 10_000)\n if (check.exitCode !== 0) {\n return { running: false, restarted: false }\n }\n await checked(runner, \"launchctl\", [\"kickstart\", \"-k\", target])\n return { running: true, restarted: true, service }\n }\n if (platform === \"win32\") {\n const service = \"Cohall Device\"\n const check = await runner.run(\"schtasks.exe\", [\"/Query\", \"/TN\", service], 10_000)\n if (check.exitCode !== 0) {\n return { running: false, restarted: false }\n }\n await checked(runner, \"schtasks.exe\", [\"/End\", \"/TN\", service], true)\n await checked(runner, \"schtasks.exe\", [\"/Run\", \"/TN\", service])\n return { running: true, restarted: true, service }\n }\n return { running: false, restarted: false }\n}\n",
23
- "import { Schema } from \"effect\"\nimport { execFile, type ExecFileException } from \"node:child_process\"\nimport { constants } from \"node:fs\"\nimport {\n access,\n chmod,\n mkdir,\n readFile,\n realpath,\n rename,\n rm,\n stat,\n writeFile,\n} from \"node:fs/promises\"\nimport { delimiter, dirname, extname, isAbsolute, join, relative } from \"node:path\"\nimport { platform as operatingSystem } from \"node:os\"\nimport { configurationPath } from \"./config.ts\"\n\nconst packageName = \"@akshar5/cohall\"\nconst semanticVersion = /^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$/\n\nexport const PackageManager = Schema.Literals([\"npm\", \"bun\", \"pnpm\"])\nexport type PackageManager = typeof PackageManager.Type\nexport type ServiceManager = \"launchd\" | \"scheduled-task\" | \"systemd-system\" | \"systemd-user\"\n\nexport interface CommandResult {\n readonly exitCode: number\n readonly stdout: string\n readonly stderr: string\n readonly error?: string\n}\n\nexport interface CommandRunner {\n readonly run: (\n command: string,\n arguments_: ReadonlyArray<string>,\n timeoutMs?: number,\n ) => Promise<CommandResult>\n}\n\nexport interface PackageInstallation {\n readonly manager: PackageManager\n readonly prefix?: string\n readonly entrypoint: string\n}\n\nexport interface ManagedService {\n readonly id: string\n readonly label: string\n readonly manager: ServiceManager\n readonly device: boolean\n readonly check: CommandInvocation\n readonly activeOutput?: RegExp\n readonly entrypoint?: {\n readonly inspect: CommandInvocation\n readonly parse: (output: string) => string | undefined\n }\n readonly restart: ReadonlyArray<CommandInvocation>\n}\n\nexport interface CommandInvocation {\n readonly command: string\n readonly arguments: ReadonlyArray<string>\n readonly allowFailure?: boolean\n}\n\nconst RestartReceipt = Schema.Struct({\n version: Schema.String,\n fromVersion: Schema.String,\n packageManager: PackageManager,\n pendingServices: Schema.Array(Schema.String),\n restartedServices: Schema.Array(Schema.String),\n restartingService: Schema.optionalKey(Schema.String),\n})\ninterface RestartReceipt extends Schema.Schema.Type<typeof RestartReceipt> {}\n\nexport interface UpgradeOptions {\n readonly currentVersion: string\n readonly target?: string\n readonly restart: boolean\n readonly dryRun: boolean\n readonly entrypoint?: string\n readonly platform?: NodeJS.Platform\n readonly uid?: number\n readonly statePath?: string\n readonly delegated?: boolean\n readonly runner?: CommandRunner\n readonly resolveExecutable?: (command: string) => Promise<string>\n}\n\nexport interface UpgradeResult {\n readonly upgraded: boolean\n readonly from_version: string\n readonly installed_version: string\n readonly requested_version: string\n readonly package_manager: PackageManager\n readonly services_restarted: ReadonlyArray<string>\n readonly services_pending_restart: ReadonlyArray<string>\n readonly resumed_after_restart: boolean\n readonly dry_run: boolean\n}\n\nconst normalizePath = (path: string): string => path.replaceAll(\"\\\\\", \"/\")\n\nexport const normalizeUpgradeTarget = (target: string | undefined): string => {\n if (target === undefined || target === \"latest\") {\n return \"latest\"\n }\n const normalized = target.startsWith(\"v\") ? target.slice(1) : target\n if (!semanticVersion.test(normalized)) {\n throw new Error(\"--to must be latest or an exact semantic version\")\n }\n return normalized\n}\n\nexport const deviceVersionWarning = (\n cliVersion: string,\n deviceVersion: string | undefined,\n): string | undefined =>\n deviceVersion === undefined || deviceVersion === cliVersion\n ? undefined\n : `Running device daemon uses Cohall ${deviceVersion}, while this CLI is ${cliVersion}. Run upgrade through the executable configured by the device service.`\n\nexport const packageInstallation = (\n canonicalEntrypoint: string,\n entrypoint = canonicalEntrypoint,\n): PackageInstallation => {\n const path = normalizePath(canonicalEntrypoint)\n const marker = `/node_modules/${packageName}/`\n const packageIndex = path.lastIndexOf(marker)\n if (packageIndex === -1) {\n throw new Error(\n \"cohall upgrade requires a global npm, Bun, or pnpm installation; package-runner and source-checkout executions cannot upgrade themselves\",\n )\n }\n if (\n path.includes(\"/.npm/_npx/\") ||\n path.includes(\"/.bunx/\") ||\n path.includes(\"/pnpm/dlx/\") ||\n path.includes(\"/dlx/\")\n ) {\n throw new Error(\n \"This Cohall process is running from a temporary package-runner cache; install it globally before using cohall upgrade\",\n )\n }\n if (path.includes(\"/.bun/install/global/node_modules/\")) {\n return { manager: \"bun\", entrypoint }\n }\n if (path.includes(\"/pnpm/global/\")) {\n return { manager: \"pnpm\", entrypoint }\n }\n\n const nodeModulesParent = path.slice(0, packageIndex)\n const prefix = nodeModulesParent.endsWith(\"/lib\")\n ? nodeModulesParent.slice(0, -\"/lib\".length)\n : nodeModulesParent\n return { manager: \"npm\", prefix, entrypoint }\n}\n\nexport const packageInstallCommand = (\n installation: PackageInstallation,\n target: string,\n): CommandInvocation => {\n const specification = `${packageName}@${target}`\n switch (installation.manager) {\n case \"bun\":\n return { command: \"bun\", arguments: [\"add\", \"--global\", specification] }\n case \"pnpm\":\n return { command: \"pnpm\", arguments: [\"add\", \"--global\", specification] }\n case \"npm\":\n return {\n command: \"npm\",\n arguments: [\n \"install\",\n \"--global\",\n ...(installation.prefix === undefined ? [] : [\"--prefix\", installation.prefix]),\n specification,\n ],\n }\n }\n}\n\nconst executableNames = (command: string): ReadonlyArray<string> => {\n if (operatingSystem() !== \"win32\" || extname(command).length > 0) {\n return [command]\n }\n return (process.env.PATHEXT ?? \".COM;.EXE;.BAT;.CMD\")\n .split(\";\")\n .filter(Boolean)\n .map((extension) => `${command}${extension.toLowerCase()}`)\n}\n\nconst containsPath = (root: string, path: string): boolean => {\n const child = relative(root, path)\n return child === \"\" || (!child.startsWith(\"..\") && !isAbsolute(child))\n}\n\nconst linuxSystemExecutableRoots = [\n \"/bin\",\n \"/sbin\",\n \"/usr/bin\",\n \"/usr/sbin\",\n \"/usr/lib/node_modules\",\n \"/usr/share/nodejs\",\n \"/nix/store\",\n]\nconst macosHomebrewRoots = [\"/opt/homebrew\", \"/usr/local\"]\nconst macosAdminGroup = 80\n\nexport const isTrustedSystemExecutablePath = (\n platform: NodeJS.Platform,\n canonical: string,\n): boolean =>\n platform === \"linux\" && linuxSystemExecutableRoots.some((root) => containsPath(root, canonical))\n\nexport const isTrustedGroupWritablePath = (options: {\n readonly platform: NodeJS.Platform\n readonly canonical: string\n readonly writableRoot: string | undefined\n readonly path: string\n readonly uid: number | undefined\n readonly ownerUid: number\n readonly ownerGid: number\n}): boolean => {\n const writableRoot = options.writableRoot\n return (\n options.platform === \"darwin\" &&\n writableRoot !== undefined &&\n options.uid !== undefined &&\n options.ownerUid === options.uid &&\n options.ownerGid === macosAdminGroup &&\n macosHomebrewRoots.some((root) => containsPath(root, writableRoot)) &&\n containsPath(writableRoot, options.canonical) &&\n containsPath(writableRoot, options.path)\n )\n}\n\nexport const trustedExecutable = async (\n command: string,\n options: { readonly writableRoot?: string } = {},\n): Promise<string> => {\n const candidates = isAbsolute(command)\n ? [command]\n : (process.env.PATH ?? \"\")\n .split(delimiter)\n .filter(Boolean)\n .flatMap((directory) => executableNames(command).map((name) => join(directory, name)))\n let selected: string | undefined\n for (const path of candidates) {\n const available = await access(\n path,\n operatingSystem() === \"win32\" ? constants.F_OK : constants.X_OK,\n )\n .then(() => true)\n .catch(() => false)\n if (available) {\n selected = path\n break\n }\n }\n if (selected === undefined) {\n throw new Error(`Could not find ${command} on PATH`)\n }\n const canonical = await realpath(selected)\n if (operatingSystem() === \"win32\") {\n return canonical\n }\n const uid = process.getuid?.()\n const writableRoot =\n options.writableRoot === undefined ? undefined : await realpath(options.writableRoot)\n // Confined Linux services cannot always observe host-root ownership. Fixed OS roots are the\n // trust anchor; their writable bits are still checked below.\n const systemExecutable = isTrustedSystemExecutablePath(operatingSystem(), canonical)\n for (let path = canonical; ; path = dirname(path)) {\n const metadata = await stat(path)\n // Homebrew's shared prefix is admin-group writable. Local administrators are already inside\n // the OS trust boundary; arbitrary shared Unix groups remain rejected.\n const trustedGroupWritablePath = isTrustedGroupWritablePath({\n platform: operatingSystem(),\n canonical,\n writableRoot,\n path,\n uid,\n ownerUid: metadata.uid,\n ownerGid: metadata.gid,\n })\n if (\n (metadata.mode & 0o002) !== 0 ||\n ((metadata.mode & 0o020) !== 0 && !trustedGroupWritablePath)\n ) {\n throw new Error(`Refusing executable beneath group- or world-writable path ${path}`)\n }\n if (uid !== undefined && metadata.uid !== 0 && metadata.uid !== uid && !systemExecutable) {\n throw new Error(`Refusing executable owned by another user at ${path}`)\n }\n const parent = dirname(path)\n if (parent === path) {\n break\n }\n }\n return canonical\n}\n\nconst trustedServices = async (\n services: ReadonlyArray<ManagedService>,\n resolveExecutable: (command: string) => Promise<string>,\n): Promise<ReadonlyArray<ManagedService>> => {\n const resolved = new Map<string, Promise<string>>()\n const invocation = async (value: CommandInvocation): Promise<CommandInvocation> => {\n let command = resolved.get(value.command)\n if (command === undefined) {\n command = resolveExecutable(value.command)\n resolved.set(value.command, command)\n }\n return { ...value, command: await command }\n }\n const secured: Array<ManagedService> = []\n for (const service of services) {\n let check: CommandInvocation\n try {\n check = await invocation(service.check)\n } catch (cause) {\n if (cause instanceof Error && cause.message.startsWith(\"Could not find \")) {\n continue\n }\n throw cause\n }\n secured.push({\n ...service,\n check,\n ...(service.entrypoint === undefined\n ? {}\n : {\n entrypoint: {\n ...service.entrypoint,\n inspect: await invocation(service.entrypoint.inspect),\n },\n }),\n restart: await Promise.all(service.restart.map(invocation)),\n })\n }\n return secured\n}\n\nexport const serviceCandidates = (\n runtimePlatform: NodeJS.Platform,\n uid: number | undefined,\n): ReadonlyArray<ManagedService> => {\n if (runtimePlatform === \"linux\") {\n const systemd = (\n manager: \"systemd-user\" | \"systemd-system\",\n unit: string,\n device: boolean,\n ): ManagedService => {\n const user = manager === \"systemd-user\" ? [\"--user\"] : []\n return {\n id: `${manager}:${unit}`,\n label: unit,\n manager,\n device,\n check: { command: \"systemctl\", arguments: [...user, \"is-active\", \"--quiet\", unit] },\n entrypoint: {\n inspect: {\n command: \"systemctl\",\n arguments: [...user, \"show\", \"--property=ExecStart\", \"--value\", unit],\n },\n parse: (output) => output.match(/\\bpath=(.*?)\\s*;/)?.[1]?.trim(),\n },\n restart: [{ command: \"systemctl\", arguments: [...user, \"restart\", unit] }],\n }\n }\n return [\n systemd(\"systemd-user\", \"cohall-relay.service\", false),\n systemd(\"systemd-system\", \"cohall-relay.service\", false),\n systemd(\"systemd-user\", \"cohall-device.service\", true),\n ]\n }\n\n if (runtimePlatform === \"darwin\") {\n const domain = `gui/${uid ?? 0}`\n const launchd = (label: string, device: boolean): ManagedService => ({\n id: `launchd:${label}`,\n label,\n manager: \"launchd\",\n device,\n check: { command: \"launchctl\", arguments: [\"print\", `${domain}/${label}`] },\n activeOutput: /\\bstate\\s*=\\s*running\\b/,\n entrypoint: {\n inspect: { command: \"launchctl\", arguments: [\"print\", `${domain}/${label}`] },\n parse: (output) => output.match(/^\\s*program\\s*=\\s*(.+)$/m)?.[1]?.trim(),\n },\n restart: [{ command: \"launchctl\", arguments: [\"kickstart\", \"-k\", `${domain}/${label}`] }],\n })\n return [launchd(\"com.cohall.relay\", false), launchd(\"com.cohall.device\", true)]\n }\n\n if (runtimePlatform === \"win32\") {\n return [\n {\n id: \"scheduled-task:Cohall Device\",\n label: \"Cohall Device\",\n manager: \"scheduled-task\",\n device: true,\n check: {\n command: \"powershell.exe\",\n arguments: [\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-Command\",\n \"if ((Get-ScheduledTask -TaskName 'Cohall Device' -ErrorAction SilentlyContinue).State -eq 'Running') { exit 0 } else { exit 1 }\",\n ],\n },\n restart: [\n {\n command: \"schtasks.exe\",\n arguments: [\"/End\", \"/TN\", \"Cohall Device\"],\n allowFailure: true,\n },\n { command: \"schtasks.exe\", arguments: [\"/Run\", \"/TN\", \"Cohall Device\"] },\n ],\n },\n ]\n }\n\n return []\n}\n\nconst defaultRunner: CommandRunner = {\n run: (command, arguments_, timeoutMs = 300_000) =>\n new Promise((resolve) => {\n execFile(\n command,\n [...arguments_],\n { encoding: \"utf8\", maxBuffer: 1024 * 1024, timeout: timeoutMs, windowsHide: true },\n (error: ExecFileException | null, stdout, stderr) => {\n resolve({\n exitCode: typeof error?.code === \"number\" ? error.code : error === null ? 0 : 1,\n stdout,\n stderr,\n ...(error === null ? {} : { error: error.message }),\n })\n },\n )\n }),\n}\n\nconst checked = async (\n runner: CommandRunner,\n invocation: CommandInvocation,\n timeoutMs?: number,\n): Promise<CommandResult> => {\n const result = await runner.run(invocation.command, invocation.arguments, timeoutMs)\n if (result.exitCode === 0 || invocation.allowFailure === true) {\n return result\n }\n const detail = (\n result.stderr.trim() ||\n result.stdout.trim() ||\n result.error ||\n \"unknown error\"\n ).slice(0, 16_384)\n throw new Error(\n `${invocation.command} ${invocation.arguments.join(\" \")} failed with status ${result.exitCode}: ${detail}`,\n )\n}\n\nconst activeServices = async (\n runner: CommandRunner,\n candidates: ReadonlyArray<ManagedService>,\n): Promise<ReadonlyArray<ManagedService>> => {\n const active: Array<ManagedService> = []\n for (const service of candidates) {\n const result = await runner.run(service.check.command, service.check.arguments, 10_000)\n if (\n result.exitCode === 0 &&\n (service.activeOutput === undefined ||\n service.activeOutput.test(`${result.stdout}\\n${result.stderr}`))\n ) {\n active.push(service)\n }\n }\n return active\n}\n\nconst assertServiceInstallations = async (\n runner: CommandRunner,\n services: ReadonlyArray<ManagedService>,\n canonicalEntrypoint: string,\n entrypoint: string,\n): Promise<void> => {\n for (const service of services) {\n if (service.entrypoint === undefined) {\n continue\n }\n const result = await checked(runner, service.entrypoint.inspect, 10_000)\n const serviceEntrypoint = service.entrypoint.parse(`${result.stdout}\\n${result.stderr}`)\n if (serviceEntrypoint === undefined) {\n throw new Error(`Could not determine the executable used by active ${service.label}`)\n }\n const canonicalServiceEntrypoint = await realpath(serviceEntrypoint).catch((cause: unknown) => {\n throw new Error(\n `Could not resolve the executable used by active ${service.label}: ${cause instanceof Error ? cause.message : String(cause)}`,\n )\n })\n if (canonicalServiceEntrypoint === canonicalEntrypoint) {\n continue\n }\n throw new Error(\n `Active ${service.label} uses ${serviceEntrypoint}, but this Cohall CLI uses ${entrypoint}. Run the service executable's upgrade command so its installation is updated before restart.`,\n )\n }\n}\n\nconst readReceipt = async (path: string): Promise<RestartReceipt | undefined> =>\n readFile(path, \"utf8\")\n .then((content) => Schema.decodeUnknownOption(RestartReceipt)(JSON.parse(content)))\n .then((decoded) => (decoded._tag === \"Some\" ? decoded.value : undefined))\n .catch(() => undefined)\n\nconst writeReceipt = async (path: string, value: RestartReceipt): Promise<void> => {\n const directory = dirname(path)\n const temporary = `${path}.${process.pid}.tmp`\n await mkdir(directory, { recursive: true, mode: 0o700 })\n if (operatingSystem() !== \"win32\") {\n await chmod(directory, 0o700)\n }\n await writeFile(temporary, `${JSON.stringify(value, null, 2)}\\n`, { mode: 0o600 })\n await rename(temporary, path)\n}\n\nconst installedVersion = async (entrypoint: string): Promise<string> => {\n const canonicalEntrypoint = await realpath(entrypoint)\n const metadata: unknown = JSON.parse(\n await readFile(join(dirname(dirname(canonicalEntrypoint)), \"package.json\"), \"utf8\"),\n )\n if (\n typeof metadata !== \"object\" ||\n metadata === null ||\n !(\"name\" in metadata) ||\n metadata.name !== packageName ||\n !(\"version\" in metadata) ||\n typeof metadata.version !== \"string\"\n ) {\n throw new Error(`Could not verify the installed ${packageName} version`)\n }\n return metadata.version\n}\n\nconst restartReceiptPath = (): string => join(dirname(configurationPath()), \"upgrade-restart.json\")\n\nconst restartServices = async (\n runner: CommandRunner,\n services: ReadonlyArray<ManagedService>,\n statePath: string,\n state: RestartReceipt,\n preserveDeviceReceipt: boolean,\n): Promise<RestartReceipt> => {\n let current = state\n for (const service of services) {\n current = { ...current, restartingService: service.id }\n await writeReceipt(statePath, current)\n try {\n for (const invocation of service.restart) {\n await checked(runner, invocation, 60_000)\n }\n } catch (cause) {\n current = {\n version: current.version,\n fromVersion: current.fromVersion,\n packageManager: current.packageManager,\n pendingServices: current.pendingServices,\n restartedServices: current.restartedServices,\n }\n await writeReceipt(statePath, current)\n throw cause\n }\n if (service.device && preserveDeviceReceipt) {\n // Some service managers return before terminating this process. The replacement task consumes the marker.\n return current\n }\n current = {\n version: current.version,\n fromVersion: current.fromVersion,\n packageManager: current.packageManager,\n pendingServices: current.pendingServices.filter((id) => id !== service.id),\n restartedServices: [...current.restartedServices, service.id],\n }\n await writeReceipt(statePath, current)\n }\n return current\n}\n\nconst reportedRestartServices = (receipt: RestartReceipt): ReadonlyArray<string> =>\n receipt.restartingService === undefined ||\n receipt.restartedServices.includes(receipt.restartingService)\n ? receipt.restartedServices\n : [...receipt.restartedServices, receipt.restartingService]\n\nexport const upgrade = async (options: UpgradeOptions): Promise<UpgradeResult> => {\n const runner = options.runner ?? defaultRunner\n const resolveExecutable = options.resolveExecutable ?? trustedExecutable\n const runtimePlatform = options.platform ?? process.platform\n const uid = options.uid ?? process.getuid?.()\n const candidates = await trustedServices(\n serviceCandidates(runtimePlatform, uid),\n resolveExecutable,\n )\n const statePath = options.statePath ?? restartReceiptPath()\n const previous = await readReceipt(statePath)\n\n if (previous?.version === options.currentVersion) {\n const byId = new Map(candidates.map((service) => [service.id, service]))\n const pending = previous.pendingServices.flatMap((id) => {\n const service = byId.get(id)\n return service === undefined ? [] : [service]\n })\n const active = await activeServices(runner, pending)\n if (options.dryRun || !options.restart) {\n return {\n upgraded: previous.fromVersion !== previous.version,\n from_version: previous.fromVersion,\n installed_version: previous.version,\n requested_version: previous.version,\n package_manager: previous.packageManager,\n services_restarted: previous.restartedServices,\n services_pending_restart: active.map((service) => service.id),\n resumed_after_restart: false,\n dry_run: options.dryRun,\n }\n }\n const activeIds = new Set(active.map((service) => service.id))\n const completedByRestart = pending.filter(\n (service) =>\n service.device && service.id === previous.restartingService && activeIds.has(service.id),\n )\n const completedIds = new Set(completedByRestart.map((service) => service.id))\n const remaining = active.filter((service) => !completedIds.has(service.id))\n let resumed: RestartReceipt = {\n version: previous.version,\n fromVersion: previous.fromVersion,\n packageManager: previous.packageManager,\n pendingServices: previous.pendingServices.filter((id) => !completedIds.has(id)),\n restartedServices: [\n ...previous.restartedServices,\n ...completedByRestart.map((service) => service.id),\n ],\n }\n if (remaining.length > 0) {\n await writeReceipt(statePath, resumed)\n resumed = await restartServices(\n runner,\n remaining,\n statePath,\n resumed,\n options.delegated === true,\n )\n }\n if (resumed.restartingService === undefined) {\n await rm(statePath, { force: true })\n }\n return {\n upgraded: previous.fromVersion !== previous.version,\n from_version: previous.fromVersion,\n installed_version: previous.version,\n requested_version: previous.version,\n package_manager: previous.packageManager,\n services_restarted: reportedRestartServices(resumed),\n services_pending_restart: [],\n resumed_after_restart: true,\n dry_run: false,\n }\n }\n\n await rm(statePath, { force: true })\n\n const target = normalizeUpgradeTarget(options.target)\n const entrypoint = options.entrypoint ?? process.argv[1]\n if (entrypoint === undefined) {\n throw new Error(\"Could not resolve the Cohall executable path\")\n }\n const canonicalEntrypoint = await realpath(entrypoint)\n const installation = packageInstallation(canonicalEntrypoint, entrypoint)\n const install = packageInstallCommand(installation, target)\n const services = await activeServices(runner, candidates)\n await assertServiceInstallations(runner, services, canonicalEntrypoint, entrypoint)\n\n if (options.dryRun) {\n return {\n upgraded: false,\n from_version: options.currentVersion,\n installed_version: options.currentVersion,\n requested_version: target,\n package_manager: installation.manager,\n services_restarted: [],\n services_pending_restart: options.restart ? services.map((service) => service.id) : [],\n resumed_after_restart: false,\n dry_run: true,\n }\n }\n\n const installExecutable =\n options.resolveExecutable === undefined\n ? await trustedExecutable(\n install.command,\n installation.prefix === undefined ? {} : { writableRoot: installation.prefix },\n )\n : await resolveExecutable(install.command)\n await checked(runner, { ...install, command: installExecutable })\n const nextVersion = await installedVersion(entrypoint)\n if (target !== \"latest\" && nextVersion !== target) {\n throw new Error(`Installed Cohall ${nextVersion}, expected ${target}`)\n }\n const upgraded = nextVersion !== options.currentVersion\n\n if (!options.restart || services.length === 0) {\n return {\n upgraded,\n from_version: options.currentVersion,\n installed_version: nextVersion,\n requested_version: target,\n package_manager: installation.manager,\n services_restarted: [],\n services_pending_restart: options.restart ? [] : services.map((service) => service.id),\n resumed_after_restart: false,\n dry_run: false,\n }\n }\n\n const initial: RestartReceipt = {\n version: nextVersion,\n fromVersion: options.currentVersion,\n packageManager: installation.manager,\n pendingServices: services.map((service) => service.id),\n restartedServices: [],\n }\n await writeReceipt(statePath, initial)\n const completed = await restartServices(\n runner,\n services,\n statePath,\n initial,\n options.delegated === true,\n )\n if (completed.restartingService === undefined) {\n await rm(statePath, { force: true })\n }\n return {\n upgraded,\n from_version: options.currentVersion,\n installed_version: nextVersion,\n requested_version: target,\n package_manager: installation.manager,\n services_restarted: reportedRestartServices(completed),\n services_pending_restart: [],\n resumed_after_restart: false,\n dry_run: false,\n }\n}\n",
23
+ "import { Schema } from \"effect\"\nimport { execFile, type ExecFileException } from \"node:child_process\"\nimport { constants } from \"node:fs\"\nimport {\n access,\n chmod,\n mkdir,\n readFile,\n realpath,\n rename,\n rm,\n stat,\n writeFile,\n} from \"node:fs/promises\"\nimport { delimiter, dirname, extname, isAbsolute, join, relative } from \"node:path\"\nimport { platform as operatingSystem } from \"node:os\"\nimport { configurationPath } from \"./config.ts\"\n\nconst packageName = \"@akshar5/cohall\"\nconst semanticVersion = /^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$/\n\nexport const PackageManager = Schema.Literals([\"npm\", \"bun\", \"pnpm\"])\nexport type PackageManager = typeof PackageManager.Type\nexport type ServiceManager = \"launchd\" | \"scheduled-task\" | \"systemd-system\" | \"systemd-user\"\n\nexport interface CommandResult {\n readonly exitCode: number\n readonly stdout: string\n readonly stderr: string\n readonly error?: string\n}\n\nexport interface CommandRunner {\n readonly run: (\n command: string,\n arguments_: ReadonlyArray<string>,\n timeoutMs?: number,\n ) => Promise<CommandResult>\n}\n\nexport interface PackageInstallation {\n readonly manager: PackageManager\n readonly prefix?: string\n readonly entrypoint: string\n}\n\nexport interface ManagedService {\n readonly id: string\n readonly label: string\n readonly manager: ServiceManager\n readonly device: boolean\n readonly check: CommandInvocation\n readonly activeOutput?: RegExp\n readonly entrypoint?: {\n readonly inspect: CommandInvocation\n readonly parse: (output: string) => string | undefined\n }\n readonly restart: ReadonlyArray<CommandInvocation>\n}\n\nexport interface CommandInvocation {\n readonly command: string\n readonly arguments: ReadonlyArray<string>\n readonly allowFailure?: boolean\n}\n\nconst RestartReceipt = Schema.Struct({\n version: Schema.String,\n fromVersion: Schema.String,\n packageManager: PackageManager,\n pendingServices: Schema.Array(Schema.String),\n restartedServices: Schema.Array(Schema.String),\n restartingService: Schema.optionalKey(Schema.String),\n})\ninterface RestartReceipt extends Schema.Schema.Type<typeof RestartReceipt> {}\n\nexport interface UpgradeOptions {\n readonly currentVersion: string\n readonly target?: string\n readonly restart: boolean\n readonly dryRun: boolean\n readonly entrypoint?: string\n readonly platform?: NodeJS.Platform\n readonly uid?: number\n readonly statePath?: string\n readonly delegated?: boolean\n readonly runner?: CommandRunner\n readonly resolveExecutable?: (command: string) => Promise<string>\n}\n\nexport interface UpgradeResult {\n readonly upgraded: boolean\n readonly from_version: string\n readonly installed_version: string\n readonly requested_version: string\n readonly package_manager: PackageManager\n readonly services_restarted: ReadonlyArray<string>\n readonly services_pending_restart: ReadonlyArray<string>\n readonly resumed_after_restart: boolean\n readonly dry_run: boolean\n}\n\nconst normalizePath = (path: string): string => path.replaceAll(\"\\\\\", \"/\")\n\nexport const normalizeUpgradeTarget = (target: string | undefined): string => {\n if (target === undefined || target === \"latest\") {\n return \"latest\"\n }\n const normalized = target.startsWith(\"v\") ? target.slice(1) : target\n if (!semanticVersion.test(normalized)) {\n throw new Error(\"--to must be latest or an exact semantic version\")\n }\n return normalized\n}\n\nexport const deviceVersionWarning = (\n cliVersion: string,\n deviceVersion: string | undefined,\n): string | undefined =>\n deviceVersion === undefined || deviceVersion === cliVersion\n ? undefined\n : `Running device daemon uses Cohall ${deviceVersion}, while this CLI is ${cliVersion}. Run upgrade through the executable configured by the device service.`\n\nexport const packageInstallation = (\n canonicalEntrypoint: string,\n entrypoint = canonicalEntrypoint,\n): PackageInstallation => {\n const path = normalizePath(canonicalEntrypoint)\n const marker = `/node_modules/${packageName}/`\n const packageIndex = path.lastIndexOf(marker)\n if (packageIndex === -1) {\n throw new Error(\n \"cohall upgrade requires a global npm, Bun, or pnpm installation; package-runner and source-checkout executions cannot upgrade themselves\",\n )\n }\n if (\n path.includes(\"/.npm/_npx/\") ||\n path.includes(\"/.bunx/\") ||\n path.includes(\"/pnpm/dlx/\") ||\n path.includes(\"/dlx/\")\n ) {\n throw new Error(\n \"This Cohall process is running from a temporary package-runner cache; install it globally before using cohall upgrade\",\n )\n }\n if (path.includes(\"/.bun/install/global/node_modules/\")) {\n return { manager: \"bun\", entrypoint }\n }\n if (path.includes(\"/pnpm/global/\")) {\n return { manager: \"pnpm\", entrypoint }\n }\n\n const nodeModulesParent = path.slice(0, packageIndex)\n const prefix = nodeModulesParent.endsWith(\"/lib\")\n ? nodeModulesParent.slice(0, -\"/lib\".length)\n : nodeModulesParent\n return { manager: \"npm\", prefix, entrypoint }\n}\n\nexport const packageInstallCommand = (\n installation: PackageInstallation,\n target: string,\n): CommandInvocation => {\n const specification = `${packageName}@${target}`\n switch (installation.manager) {\n case \"bun\":\n return { command: \"bun\", arguments: [\"add\", \"--global\", specification] }\n case \"pnpm\":\n return { command: \"pnpm\", arguments: [\"add\", \"--global\", specification] }\n case \"npm\":\n return {\n command: \"npm\",\n arguments: [\n \"install\",\n \"--global\",\n ...(installation.prefix === undefined ? [] : [\"--prefix\", installation.prefix]),\n specification,\n ],\n }\n }\n}\n\nconst executableNames = (command: string): ReadonlyArray<string> => {\n if (operatingSystem() !== \"win32\" || extname(command).length > 0) {\n return [command]\n }\n return (process.env.PATHEXT ?? \".COM;.EXE;.BAT;.CMD\")\n .split(\";\")\n .filter(Boolean)\n .map((extension) => `${command}${extension.toLowerCase()}`)\n}\n\nconst containsPath = (root: string, path: string): boolean => {\n const child = relative(root, path)\n return child === \"\" || (!child.startsWith(\"..\") && !isAbsolute(child))\n}\n\nconst linuxSystemExecutableRoots = [\n \"/bin\",\n \"/sbin\",\n \"/usr/bin\",\n \"/usr/sbin\",\n \"/usr/lib/node_modules\",\n \"/usr/share/nodejs\",\n \"/nix/store\",\n]\nconst macosHomebrewRoots = [\"/opt/homebrew\", \"/usr/local\"]\nconst macosAdminGroup = 80\n\nexport const isTrustedSystemPath = (platform: NodeJS.Platform, path: string): boolean =>\n platform === \"linux\" &&\n (path === \"/home\" ||\n linuxSystemExecutableRoots.some((root) => containsPath(root, path) || containsPath(path, root)))\n\nexport const isTrustedGroupWritablePath = (options: {\n readonly platform: NodeJS.Platform\n readonly canonical: string\n readonly writableRoot: string | undefined\n readonly path: string\n readonly uid: number | undefined\n readonly ownerUid: number\n readonly ownerGid: number\n}): boolean => {\n const writableRoot = options.writableRoot\n return (\n options.platform === \"darwin\" &&\n writableRoot !== undefined &&\n options.uid !== undefined &&\n options.ownerUid === options.uid &&\n options.ownerGid === macosAdminGroup &&\n macosHomebrewRoots.some((root) => containsPath(root, writableRoot)) &&\n containsPath(writableRoot, options.canonical) &&\n containsPath(writableRoot, options.path)\n )\n}\n\nconst validateExecutable = async (\n candidate: string,\n installationRoot: string | undefined,\n): Promise<string> => {\n const canonical = await realpath(candidate)\n if (operatingSystem() === \"win32\") {\n return canonical\n }\n const uid = process.getuid?.()\n const writableRoot = installationRoot === undefined ? undefined : await realpath(installationRoot)\n for (let path = canonical; ; path = dirname(path)) {\n const metadata = await stat(path)\n // Homebrew's shared prefix is admin-group writable. Local administrators are already inside\n // the OS trust boundary; arbitrary shared Unix groups remain rejected.\n const trustedGroupWritablePath = isTrustedGroupWritablePath({\n platform: operatingSystem(),\n canonical,\n writableRoot,\n path,\n uid,\n ownerUid: metadata.uid,\n ownerGid: metadata.gid,\n })\n if (\n (metadata.mode & 0o002) !== 0 ||\n ((metadata.mode & 0o020) !== 0 && !trustedGroupWritablePath)\n ) {\n throw new Error(`Refusing executable beneath group- or world-writable path ${path}`)\n }\n // User namespaces can hide host-root ownership. Only fixed OS paths are trusted this way;\n // user-installed executables and their private ancestors must still belong to this user.\n if (\n uid !== undefined &&\n metadata.uid !== 0 &&\n metadata.uid !== uid &&\n !isTrustedSystemPath(operatingSystem(), path)\n ) {\n throw new Error(`Refusing executable owned by another user at ${path}`)\n }\n const parent = dirname(path)\n if (parent === path) {\n break\n }\n }\n return canonical\n}\n\nexport const trustedExecutable = async (\n command: string,\n options: { readonly writableRoot?: string } = {},\n): Promise<string> => {\n const candidates = isAbsolute(command)\n ? [command]\n : (process.env.PATH ?? \"\")\n .split(delimiter)\n .filter(Boolean)\n .flatMap((directory) => executableNames(command).map((name) => join(directory, name)))\n let failure: unknown\n for (const path of candidates) {\n const available = await access(\n path,\n operatingSystem() === \"win32\" ? constants.F_OK : constants.X_OK,\n )\n .then(() => true)\n .catch(() => false)\n if (!available) continue\n try {\n return await validateExecutable(path, options.writableRoot)\n } catch (cause) {\n failure ??= cause\n }\n }\n throw failure ?? new Error(`Could not find ${command} on PATH`)\n}\n\nconst trustedServices = async (\n services: ReadonlyArray<ManagedService>,\n resolveExecutable: (command: string) => Promise<string>,\n): Promise<ReadonlyArray<ManagedService>> => {\n const resolved = new Map<string, Promise<string>>()\n const invocation = async (value: CommandInvocation): Promise<CommandInvocation> => {\n let command = resolved.get(value.command)\n if (command === undefined) {\n command = resolveExecutable(value.command)\n resolved.set(value.command, command)\n }\n return { ...value, command: await command }\n }\n const secured: Array<ManagedService> = []\n for (const service of services) {\n let check: CommandInvocation\n try {\n check = await invocation(service.check)\n } catch (cause) {\n if (cause instanceof Error && cause.message.startsWith(\"Could not find \")) {\n continue\n }\n throw cause\n }\n secured.push({\n ...service,\n check,\n ...(service.entrypoint === undefined\n ? {}\n : {\n entrypoint: {\n ...service.entrypoint,\n inspect: await invocation(service.entrypoint.inspect),\n },\n }),\n restart: await Promise.all(service.restart.map(invocation)),\n })\n }\n return secured\n}\n\nexport const serviceCandidates = (\n runtimePlatform: NodeJS.Platform,\n uid: number | undefined,\n): ReadonlyArray<ManagedService> => {\n if (runtimePlatform === \"linux\") {\n const systemd = (\n manager: \"systemd-user\" | \"systemd-system\",\n unit: string,\n device: boolean,\n ): ManagedService => {\n const user = manager === \"systemd-user\" ? [\"--user\"] : []\n return {\n id: `${manager}:${unit}`,\n label: unit,\n manager,\n device,\n check: { command: \"systemctl\", arguments: [...user, \"is-active\", \"--quiet\", unit] },\n entrypoint: {\n inspect: {\n command: \"systemctl\",\n arguments: [...user, \"show\", \"--property=ExecStart\", \"--value\", unit],\n },\n parse: (output) => output.match(/\\bpath=(.*?)\\s*;/)?.[1]?.trim(),\n },\n restart: [{ command: \"systemctl\", arguments: [...user, \"restart\", unit] }],\n }\n }\n return [\n systemd(\"systemd-user\", \"cohall-relay.service\", false),\n systemd(\"systemd-system\", \"cohall-relay.service\", false),\n systemd(\"systemd-user\", \"cohall-device.service\", true),\n ]\n }\n\n if (runtimePlatform === \"darwin\") {\n const domain = `gui/${uid ?? 0}`\n const launchd = (label: string, device: boolean): ManagedService => ({\n id: `launchd:${label}`,\n label,\n manager: \"launchd\",\n device,\n check: { command: \"launchctl\", arguments: [\"print\", `${domain}/${label}`] },\n activeOutput: /\\bstate\\s*=\\s*running\\b/,\n entrypoint: {\n inspect: { command: \"launchctl\", arguments: [\"print\", `${domain}/${label}`] },\n parse: (output) => output.match(/^\\s*program\\s*=\\s*(.+)$/m)?.[1]?.trim(),\n },\n restart: [{ command: \"launchctl\", arguments: [\"kickstart\", \"-k\", `${domain}/${label}`] }],\n })\n return [launchd(\"com.cohall.relay\", false), launchd(\"com.cohall.device\", true)]\n }\n\n if (runtimePlatform === \"win32\") {\n return [\n {\n id: \"scheduled-task:Cohall Device\",\n label: \"Cohall Device\",\n manager: \"scheduled-task\",\n device: true,\n check: {\n command: \"powershell.exe\",\n arguments: [\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-Command\",\n \"if ((Get-ScheduledTask -TaskName 'Cohall Device' -ErrorAction SilentlyContinue).State -eq 'Running') { exit 0 } else { exit 1 }\",\n ],\n },\n restart: [\n {\n command: \"schtasks.exe\",\n arguments: [\"/End\", \"/TN\", \"Cohall Device\"],\n allowFailure: true,\n },\n { command: \"schtasks.exe\", arguments: [\"/Run\", \"/TN\", \"Cohall Device\"] },\n ],\n },\n ]\n }\n\n return []\n}\n\nconst defaultRunner: CommandRunner = {\n run: (command, arguments_, timeoutMs = 300_000) =>\n new Promise((resolve) => {\n execFile(\n command,\n [...arguments_],\n { encoding: \"utf8\", maxBuffer: 1024 * 1024, timeout: timeoutMs, windowsHide: true },\n (error: ExecFileException | null, stdout, stderr) => {\n resolve({\n exitCode: typeof error?.code === \"number\" ? error.code : error === null ? 0 : 1,\n stdout,\n stderr,\n ...(error === null ? {} : { error: error.message }),\n })\n },\n )\n }),\n}\n\nconst checked = async (\n runner: CommandRunner,\n invocation: CommandInvocation,\n timeoutMs?: number,\n): Promise<CommandResult> => {\n const result = await runner.run(invocation.command, invocation.arguments, timeoutMs)\n if (result.exitCode === 0 || invocation.allowFailure === true) {\n return result\n }\n const detail = (\n result.stderr.trim() ||\n result.stdout.trim() ||\n result.error ||\n \"unknown error\"\n ).slice(0, 16_384)\n throw new Error(\n `${invocation.command} ${invocation.arguments.join(\" \")} failed with status ${result.exitCode}: ${detail}`,\n )\n}\n\nconst activeServices = async (\n runner: CommandRunner,\n candidates: ReadonlyArray<ManagedService>,\n): Promise<ReadonlyArray<ManagedService>> => {\n const active: Array<ManagedService> = []\n for (const service of candidates) {\n const result = await runner.run(service.check.command, service.check.arguments, 10_000)\n if (\n result.exitCode === 0 &&\n (service.activeOutput === undefined ||\n service.activeOutput.test(`${result.stdout}\\n${result.stderr}`))\n ) {\n active.push(service)\n }\n }\n return active\n}\n\nconst assertServiceInstallations = async (\n runner: CommandRunner,\n services: ReadonlyArray<ManagedService>,\n canonicalEntrypoint: string,\n entrypoint: string,\n): Promise<void> => {\n for (const service of services) {\n if (service.entrypoint === undefined) {\n continue\n }\n const result = await checked(runner, service.entrypoint.inspect, 10_000)\n const serviceEntrypoint = service.entrypoint.parse(`${result.stdout}\\n${result.stderr}`)\n if (serviceEntrypoint === undefined) {\n throw new Error(`Could not determine the executable used by active ${service.label}`)\n }\n const canonicalServiceEntrypoint = await realpath(serviceEntrypoint).catch((cause: unknown) => {\n throw new Error(\n `Could not resolve the executable used by active ${service.label}: ${cause instanceof Error ? cause.message : String(cause)}`,\n )\n })\n if (canonicalServiceEntrypoint === canonicalEntrypoint) {\n continue\n }\n throw new Error(\n `Active ${service.label} uses ${serviceEntrypoint}, but this Cohall CLI uses ${entrypoint}. Run the service executable's upgrade command so its installation is updated before restart.`,\n )\n }\n}\n\nconst readReceipt = async (path: string): Promise<RestartReceipt | undefined> =>\n readFile(path, \"utf8\")\n .then((content) => Schema.decodeUnknownOption(RestartReceipt)(JSON.parse(content)))\n .then((decoded) => (decoded._tag === \"Some\" ? decoded.value : undefined))\n .catch(() => undefined)\n\nconst writeReceipt = async (path: string, value: RestartReceipt): Promise<void> => {\n const directory = dirname(path)\n const temporary = `${path}.${process.pid}.tmp`\n await mkdir(directory, { recursive: true, mode: 0o700 })\n if (operatingSystem() !== \"win32\") {\n await chmod(directory, 0o700)\n }\n await writeFile(temporary, `${JSON.stringify(value, null, 2)}\\n`, { mode: 0o600 })\n await rename(temporary, path)\n}\n\nconst installedVersion = async (entrypoint: string): Promise<string> => {\n const canonicalEntrypoint = await realpath(entrypoint)\n const metadata: unknown = JSON.parse(\n await readFile(join(dirname(dirname(canonicalEntrypoint)), \"package.json\"), \"utf8\"),\n )\n if (\n typeof metadata !== \"object\" ||\n metadata === null ||\n !(\"name\" in metadata) ||\n metadata.name !== packageName ||\n !(\"version\" in metadata) ||\n typeof metadata.version !== \"string\"\n ) {\n throw new Error(`Could not verify the installed ${packageName} version`)\n }\n return metadata.version\n}\n\nconst restartReceiptPath = (): string => join(dirname(configurationPath()), \"upgrade-restart.json\")\n\nconst restartServices = async (\n runner: CommandRunner,\n services: ReadonlyArray<ManagedService>,\n statePath: string,\n state: RestartReceipt,\n preserveDeviceReceipt: boolean,\n): Promise<RestartReceipt> => {\n let current = state\n for (const service of services) {\n current = { ...current, restartingService: service.id }\n await writeReceipt(statePath, current)\n try {\n for (const invocation of service.restart) {\n await checked(runner, invocation, 60_000)\n }\n } catch (cause) {\n current = {\n version: current.version,\n fromVersion: current.fromVersion,\n packageManager: current.packageManager,\n pendingServices: current.pendingServices,\n restartedServices: current.restartedServices,\n }\n await writeReceipt(statePath, current)\n throw cause\n }\n if (service.device && preserveDeviceReceipt) {\n // Some service managers return before terminating this process. The replacement task consumes the marker.\n return current\n }\n current = {\n version: current.version,\n fromVersion: current.fromVersion,\n packageManager: current.packageManager,\n pendingServices: current.pendingServices.filter((id) => id !== service.id),\n restartedServices: [...current.restartedServices, service.id],\n }\n await writeReceipt(statePath, current)\n }\n return current\n}\n\nconst reportedRestartServices = (receipt: RestartReceipt): ReadonlyArray<string> =>\n receipt.restartingService === undefined ||\n receipt.restartedServices.includes(receipt.restartingService)\n ? receipt.restartedServices\n : [...receipt.restartedServices, receipt.restartingService]\n\nexport const upgrade = async (options: UpgradeOptions): Promise<UpgradeResult> => {\n const target = normalizeUpgradeTarget(options.target)\n const runner = options.runner ?? defaultRunner\n const resolveExecutable = options.resolveExecutable ?? trustedExecutable\n const runtimePlatform = options.platform ?? process.platform\n const uid = options.uid ?? process.getuid?.()\n const candidates = await trustedServices(\n serviceCandidates(runtimePlatform, uid),\n resolveExecutable,\n )\n const statePath = options.statePath ?? restartReceiptPath()\n const previous = await readReceipt(statePath)\n\n if (\n previous?.version === options.currentVersion &&\n (target === \"latest\" || target === previous.version)\n ) {\n const byId = new Map(candidates.map((service) => [service.id, service]))\n const pending = previous.pendingServices.flatMap((id) => {\n const service = byId.get(id)\n return service === undefined ? [] : [service]\n })\n const active = await activeServices(runner, pending)\n if (options.dryRun || !options.restart) {\n return {\n upgraded: previous.fromVersion !== previous.version,\n from_version: previous.fromVersion,\n installed_version: previous.version,\n requested_version: previous.version,\n package_manager: previous.packageManager,\n services_restarted: previous.restartedServices,\n services_pending_restart: active.map((service) => service.id),\n resumed_after_restart: false,\n dry_run: options.dryRun,\n }\n }\n const activeIds = new Set(active.map((service) => service.id))\n const completedByRestart = pending.filter(\n (service) =>\n service.device && service.id === previous.restartingService && activeIds.has(service.id),\n )\n const completedIds = new Set(completedByRestart.map((service) => service.id))\n const remaining = active.filter((service) => !completedIds.has(service.id))\n let resumed: RestartReceipt = {\n version: previous.version,\n fromVersion: previous.fromVersion,\n packageManager: previous.packageManager,\n pendingServices: previous.pendingServices.filter((id) => !completedIds.has(id)),\n restartedServices: [\n ...previous.restartedServices,\n ...completedByRestart.map((service) => service.id),\n ],\n }\n if (remaining.length > 0) {\n await writeReceipt(statePath, resumed)\n resumed = await restartServices(\n runner,\n remaining,\n statePath,\n resumed,\n options.delegated === true,\n )\n }\n if (resumed.restartingService === undefined) {\n await rm(statePath, { force: true })\n }\n return {\n upgraded: previous.fromVersion !== previous.version,\n from_version: previous.fromVersion,\n installed_version: previous.version,\n requested_version: previous.version,\n package_manager: previous.packageManager,\n services_restarted: reportedRestartServices(resumed),\n services_pending_restart: [],\n resumed_after_restart: true,\n dry_run: false,\n }\n }\n\n const entrypoint = options.entrypoint ?? process.argv[1]\n if (entrypoint === undefined) {\n throw new Error(\"Could not resolve the Cohall executable path\")\n }\n const canonicalEntrypoint = await realpath(entrypoint)\n const installation = packageInstallation(canonicalEntrypoint, entrypoint)\n const services = await activeServices(runner, candidates)\n await assertServiceInstallations(runner, services, canonicalEntrypoint, entrypoint)\n\n if (options.dryRun) {\n return {\n upgraded: false,\n from_version: options.currentVersion,\n installed_version: options.currentVersion,\n requested_version: target,\n package_manager: installation.manager,\n services_restarted: [],\n services_pending_restart: options.restart ? services.map((service) => service.id) : [],\n resumed_after_restart: false,\n dry_run: true,\n }\n }\n\n let nextVersion = await installedVersion(entrypoint).catch(() => undefined)\n if (nextVersion === undefined || target !== nextVersion) {\n const install = packageInstallCommand(installation, target)\n const installExecutable =\n options.resolveExecutable === undefined\n ? await trustedExecutable(\n install.command,\n installation.prefix === undefined ? {} : { writableRoot: installation.prefix },\n )\n : await resolveExecutable(install.command)\n await checked(runner, { ...install, command: installExecutable })\n nextVersion = await installedVersion(entrypoint)\n }\n if (target !== \"latest\" && nextVersion !== target) {\n throw new Error(`Installed Cohall ${nextVersion}, expected ${target}`)\n }\n const upgraded = nextVersion !== options.currentVersion\n\n if (!options.restart || services.length === 0) {\n await rm(statePath, { force: true })\n return {\n upgraded,\n from_version: options.currentVersion,\n installed_version: nextVersion,\n requested_version: target,\n package_manager: installation.manager,\n services_restarted: [],\n services_pending_restart: options.restart ? [] : services.map((service) => service.id),\n resumed_after_restart: false,\n dry_run: false,\n }\n }\n\n const initial: RestartReceipt = {\n version: nextVersion,\n fromVersion: options.currentVersion,\n packageManager: installation.manager,\n pendingServices: services.map((service) => service.id),\n restartedServices: [],\n }\n await writeReceipt(statePath, initial)\n const completed = await restartServices(\n runner,\n services,\n statePath,\n initial,\n options.delegated === true,\n )\n if (completed.restartingService === undefined) {\n await rm(statePath, { force: true })\n }\n return {\n upgraded,\n from_version: options.currentVersion,\n installed_version: nextVersion,\n requested_version: target,\n package_manager: installation.manager,\n services_restarted: reportedRestartServices(completed),\n services_pending_restart: [],\n resumed_after_restart: false,\n dry_run: false,\n }\n}\n",
24
24
  "import {\n Device,\n SocketEvent,\n decodeSocketEvent,\n maxSocketPayloadBytes,\n now,\n taskSlot,\n version,\n type Bot,\n type Provider,\n type DeviceOperation,\n type OperationId,\n type Task,\n type TaskId,\n} from \"@cohall/protocol\"\nimport * as Providers from \"@cohall/providers\"\nimport { Effect, Schedule, Schema } from \"effect\"\nimport { constants } from \"node:fs\"\nimport { open, realpath, stat } from \"node:fs/promises\"\nimport { arch, hostname, platform } from \"node:os\"\nimport { basename, isAbsolute, relative } from \"node:path\"\nimport { WebSocket, type RawData } from \"ws\"\nimport type { DeviceConfiguration } from \"./config.ts\"\nimport { discoverGrokBots, runGrokBot } from \"./grok-bot.ts\"\nimport { cleanupBotReply } from \"./bot-replies.ts\"\nimport { upgrade, type UpgradeOptions, type UpgradeResult } from \"./upgrade.ts\"\n\nconst maxQueuedRelayMessages = 8\n\nexport class DeviceConnectionError extends Schema.TaggedErrorClass<DeviceConnectionError>()(\n \"Device.ConnectionError\",\n { message: Schema.String },\n) {}\n\ninterface State {\n socket: WebSocket | undefined\n processing: Promise<void>\n readonly terminal: Map<TaskId, string>\n readonly queue: Array<Task>\n readonly sessions: Map<string, string>\n readonly tasks: Map<TaskId, { readonly task: Task; readonly controller: AbortController }>\n readonly completed: Set<TaskId>\n operation: DeviceOperation | undefined\n readonly operationQueue: Array<DeviceOperation>\n readonly operationTerminal: Map<OperationId, string>\n readonly completedOperations: Set<OperationId>\n}\n\nconst socketUrl = (configuration: DeviceConfiguration): string => {\n const url = new URL(configuration.relayUrl)\n url.protocol = url.protocol === \"https:\" ? \"wss:\" : \"ws:\"\n url.pathname = \"/ws/device\"\n return url.toString()\n}\n\nconst providerLabel = (provider: Provider): string => {\n switch (provider) {\n case \"codex\":\n return \"Codex\"\n case \"claude-code\":\n return \"Claude Code\"\n case \"opencode\":\n return \"OpenCode\"\n case \"grok-bot\":\n return \"Grok Bot\"\n }\n}\n\nconst capabilities = (providers: ReadonlyArray<Provider>): Device[\"capabilities\"] => {\n const values: Array<Device[\"capabilities\"][number]> = providers.map((provider) => ({\n id: provider,\n label: providerLabel(provider),\n detail:\n provider === \"grok-bot\"\n ? \"Named bots through this computer's local Grok Bot gateway\"\n : `${providerLabel(provider)} executable detected; authentication is checked when work starts`,\n }))\n if (\n Providers.findExecutable(\"google-chrome\") !== undefined ||\n Providers.findExecutable(\"chromium\") !== undefined ||\n platform() === \"darwin\"\n ) {\n values.push({ id: \"browser-session\", label: \"Signed-in browser\" })\n }\n if (Providers.findExecutable(\"xcodebuild\") !== undefined) {\n values.push({ id: \"xcode\", label: \"Xcode\" })\n }\n if (Providers.findExecutable(\"docker\") !== undefined) {\n values.push({ id: \"docker\", label: \"Docker\" })\n }\n return values\n}\n\nexport const selectProviders = (\n installed: ReadonlyArray<Provider>,\n configured?: ReadonlyArray<Provider>,\n): ReadonlyArray<Provider> =>\n configured === undefined\n ? installed\n : configured.filter((provider) => installed.includes(provider))\n\nconst describeDevice = (\n configuration: DeviceConfiguration,\n status: \"online\" | \"busy\" = \"online\",\n bots: ReadonlyArray<Bot> = [],\n): Device => {\n const operatingSystem = platform()\n const platformName =\n operatingSystem === \"darwin\" || operatingSystem === \"linux\"\n ? operatingSystem\n : operatingSystem === \"win32\"\n ? \"windows\"\n : \"unknown\"\n const installed: ReadonlyArray<Provider> = [\n ...Providers.availableProviders(),\n ...(configuration.grokGateway === undefined ? [] : [\"grok-bot\" as const]),\n ]\n const providers = selectProviders(installed, configuration.providers)\n return Device.make({\n id: configuration.id,\n name: configuration.name,\n hostname: hostname(),\n platform: platformName,\n architecture: arch(),\n status,\n providers,\n ...(providers.includes(\"grok-bot\") ? { bots } : {}),\n capabilities: capabilities(providers),\n workspaces: configuration.workspaces.map((path) => ({\n path,\n label: basename(path) || path,\n })),\n version,\n lastSeenAt: now(),\n })\n}\n\nexport const allowedWorkspace = async (\n configuration: DeviceConfiguration,\n requested: string | undefined,\n): Promise<string> => {\n const selected = requested ?? configuration.workspaces[0]\n if (selected === undefined) {\n throw new Error(\"No workspace is configured on this device\")\n }\n const candidate = await realpath(selected)\n const allowed = configuration.workspaces.some((root) => {\n const child = relative(root, candidate)\n return child === \"\" || (!child.startsWith(\"..\") && !isAbsolute(child))\n })\n if (!allowed) {\n throw new Error(`Workspace ${candidate} is outside this device's configured workspace roots`)\n }\n return candidate\n}\n\ninterface AuthorizedWorkspace {\n readonly cwd: string\n readonly validate: () => Promise<void>\n readonly close: () => Promise<void>\n}\n\nexport const openAllowedWorkspace = async (\n configuration: DeviceConfiguration,\n requested: string | undefined,\n): Promise<AuthorizedWorkspace> => {\n const path = await allowedWorkspace(configuration, requested)\n const operatingSystem = platform()\n const flags =\n constants.O_RDONLY |\n (operatingSystem === \"win32\" ? 0 : constants.O_DIRECTORY | constants.O_NOFOLLOW)\n const handle = await open(path, flags)\n const identity = await handle.stat()\n if (!identity.isDirectory()) {\n await handle.close()\n throw new Error(`Workspace ${path} is not a directory`)\n }\n // macOS resolves cwd after closing non-inherited descriptors during posix_spawn,\n // so /dev/fd cannot safely serve as a directory cwd there.\n const cwd = operatingSystem === \"linux\" ? `/proc/self/fd/${handle.fd}` : path\n return {\n cwd,\n validate: async () => {\n const current = await handle.stat()\n if (!current.isDirectory() || current.dev !== identity.dev || current.ino !== identity.ino) {\n throw new Error(`Workspace ${path} changed before provider startup`)\n }\n if (operatingSystem !== \"linux\") {\n const currentPath = await realpath(path)\n const currentPathIdentity = await stat(currentPath)\n if (currentPathIdentity.dev !== identity.dev || currentPathIdentity.ino !== identity.ino) {\n throw new Error(`Workspace ${path} changed before provider startup`)\n }\n }\n },\n close: () => handle.close(),\n }\n}\n\nconst promptFor = (task: Task, deviceName: string): string => {\n const context =\n task.context === undefined\n ? \"\"\n : `\\n\\nRelevant context supplied by the sending agent:\\n${task.context}`\n return [\n `You are the Cohall agent running on ${deviceName}.`,\n \"Complete the delegated task using this device's local workspace, tools, credentials, and signed-in services.\",\n \"Never read, reveal, copy, or use Cohall configuration files or Cohall authentication tokens.\",\n \"Return a concise, complete result with the evidence the sending agent needs.\",\n `\\nTask:\\n${task.prompt}${context}`,\n ].join(\"\\n\")\n}\n\nconst send = (state: State, event: SocketEvent): void => {\n if (state.socket?.readyState === WebSocket.OPEN) {\n state.socket.send(JSON.stringify(event))\n }\n}\n\nconst sendTerminal = (state: State, taskId: TaskId, event: SocketEvent): void => {\n const payload = JSON.stringify(event)\n state.terminal.set(taskId, payload)\n if (state.socket?.readyState === WebSocket.OPEN) {\n state.socket.send(payload)\n }\n}\n\nconst sendOperationTerminal = (\n state: State,\n operationId: OperationId,\n event: SocketEvent,\n): void => {\n const payload = JSON.stringify(event)\n state.operationTerminal.set(operationId, payload)\n if (state.socket?.readyState === WebSocket.OPEN) {\n state.socket.send(payload)\n }\n}\n\nconst remember = (state: State, taskId: TaskId): void => {\n state.completed.add(taskId)\n if (state.completed.size <= 1_000) {\n return\n }\n const oldest = state.completed.values().next()\n if (!oldest.done) {\n state.completed.delete(oldest.value)\n state.terminal.delete(oldest.value)\n }\n}\n\nconst rememberOperation = (state: State, operationId: OperationId): void => {\n state.completedOperations.add(operationId)\n if (state.completedOperations.size <= 100) {\n return\n }\n const oldest = state.completedOperations.values().next()\n if (!oldest.done) {\n state.completedOperations.delete(oldest.value)\n state.operationTerminal.delete(oldest.value)\n }\n}\n\nconst sessionKey = (task: Task): string => `${task.threadId}:${task.provider}`\n\nconst drain = (configuration: DeviceConfiguration, state: State): void => {\n if (state.operation !== undefined) {\n return\n }\n if (state.tasks.size === 0) {\n const operation = state.operationQueue.shift()\n if (operation !== undefined) {\n executeOperation(configuration, state, operation)\n return\n }\n }\n const occupied = new Set([...state.tasks.values()].map(({ task }) => taskSlot(task)))\n for (let index = 0; index < state.queue.length; ) {\n const next = state.queue[index]\n if (next === undefined || occupied.has(taskSlot(next))) {\n index += 1\n continue\n }\n state.queue.splice(index, 1)\n occupied.add(taskSlot(next))\n execute(configuration, state, next)\n }\n}\n\nconst execute = (configuration: DeviceConfiguration, state: State, task: Task): void => {\n if (state.tasks.has(task.id) || state.completed.has(task.id)) {\n return\n }\n const controller = new AbortController()\n state.tasks.set(task.id, { task, controller })\n send(state, SocketEvent.make({ _tag: \"TaskAccepted\", taskId: task.id }))\n\n const workflow: Effect.Effect<Providers.RunResult, Providers.ProviderError> = Effect.gen(\n function* () {\n if (task.provider === \"grok-bot\") {\n return yield* Effect.tryPromise({\n try: (signal) => runGrokBot(configuration.grokGateway, task, signal),\n catch: (cause) =>\n new Providers.ProviderRunError({\n provider: task.provider,\n message: cause instanceof Error ? cause.message : String(cause),\n }),\n })\n }\n const workspace = yield* Effect.tryPromise({\n try: () => openAllowedWorkspace(configuration, task.workspace),\n catch: (cause) =>\n new Providers.ProviderRunError({\n provider: task.provider,\n message: cause instanceof Error ? cause.message : String(cause),\n }),\n })\n const sessionId = task.providerSessionId ?? state.sessions.get(sessionKey(task))\n return yield* Providers.run({\n provider: task.provider,\n threadId: task.threadId,\n taskId: task.id,\n prompt: promptFor(task, configuration.name),\n cwd: workspace.cwd,\n beforeSpawn: workspace.validate,\n ...(sessionId === undefined ? {} : { sessionId }),\n ...(configuration.model === undefined ? {} : { model: configuration.model }),\n ...(configuration.sandbox === undefined ? {} : { sandbox: configuration.sandbox }),\n }).pipe(Effect.ensuring(Effect.promise(() => workspace.close().catch(() => undefined))))\n },\n )\n\n void Effect.runPromise(workflow, { signal: controller.signal })\n .then((result) => {\n if (result.sessionId !== undefined) {\n state.sessions.set(sessionKey(task), result.sessionId)\n }\n remember(state, task.id)\n sendTerminal(\n state,\n task.id,\n SocketEvent.make({\n _tag: \"TaskFinished\",\n taskId: task.id,\n result: result.result,\n ...(result.sessionId === undefined ? {} : { providerSessionId: result.sessionId }),\n }),\n )\n })\n .catch((cause: unknown) => {\n remember(state, task.id)\n sendTerminal(\n state,\n task.id,\n controller.signal.aborted\n ? SocketEvent.make({ _tag: \"TaskCancelled\", taskId: task.id })\n : SocketEvent.make({\n _tag: \"TaskFailed\",\n taskId: task.id,\n error: (cause instanceof Error ? cause.message : String(cause)).slice(0, 16_384),\n }),\n )\n })\n .finally(() => {\n state.tasks.delete(task.id)\n drain(configuration, state)\n })\n}\n\nconst executeOperation = (\n configuration: DeviceConfiguration,\n state: State,\n operation: DeviceOperation,\n): void => {\n if (state.operation !== undefined || state.completedOperations.has(operation.id)) {\n return\n }\n state.operation = operation\n send(state, SocketEvent.make({ _tag: \"OperationAccepted\", operationId: operation.id }))\n void performDeviceOperation(operation, version)\n .then((result) => {\n rememberOperation(state, operation.id)\n sendOperationTerminal(\n state,\n operation.id,\n SocketEvent.make({\n _tag: \"OperationFinished\",\n operationId: operation.id,\n result,\n }),\n )\n })\n .catch((cause: unknown) => {\n rememberOperation(state, operation.id)\n sendOperationTerminal(\n state,\n operation.id,\n SocketEvent.make({\n _tag: \"OperationFailed\",\n operationId: operation.id,\n error: (cause instanceof Error ? cause.message : String(cause)).slice(0, 16_384),\n }),\n )\n })\n .finally(() => {\n state.operation = undefined\n drain(configuration, state)\n })\n}\n\nconst scheduleOperation = (\n configuration: DeviceConfiguration,\n state: State,\n operation: DeviceOperation,\n): void => {\n if (\n state.completedOperations.has(operation.id) ||\n state.operation?.id === operation.id ||\n state.operationQueue.some((pending) => pending.id === operation.id)\n ) {\n return\n }\n if (state.tasks.size > 0 || state.operation !== undefined) {\n if (state.operationQueue.length >= 10) {\n state.socket?.close(4008, \"Operation queue limit reached\")\n return\n }\n state.operationQueue.push(operation)\n return\n }\n executeOperation(configuration, state, operation)\n}\n\nexport const performDeviceOperation = (\n operation: DeviceOperation,\n currentVersion: string,\n runUpgrade: (options: UpgradeOptions) => Promise<UpgradeResult> = upgrade,\n): Promise<string> =>\n runUpgrade({\n currentVersion,\n target: operation.requestedVersion,\n restart: operation.restart,\n dryRun: false,\n delegated: true,\n }).then((result) => JSON.stringify(result))\n\nconst schedule = (configuration: DeviceConfiguration, state: State, task: Task): void => {\n if (\n state.tasks.has(task.id) ||\n state.completed.has(task.id) ||\n state.queue.some((queued) => queued.id === task.id)\n ) {\n return\n }\n if (task.providerSessionId !== undefined) {\n state.sessions.set(sessionKey(task), task.providerSessionId)\n }\n if (\n [...state.tasks.values()].some(({ task: active }) => taskSlot(active) === taskSlot(task)) ||\n state.operation !== undefined\n ) {\n if (state.queue.length >= 100) {\n state.socket?.close(4008, \"Task queue limit reached\")\n return\n }\n state.queue.push(task)\n return\n }\n execute(configuration, state, task)\n}\n\nconst cancel = (state: State, taskId: TaskId): void => {\n const running = state.tasks.get(taskId)\n if (running !== undefined) {\n if (running.task.provider !== \"grok-bot\") {\n running.controller.abort()\n }\n return\n }\n const index = state.queue.findIndex((task) => task.id === taskId)\n if (index !== -1) {\n state.queue.splice(index, 1)\n }\n remember(state, taskId)\n sendTerminal(state, taskId, SocketEvent.make({ _tag: \"TaskCancelled\", taskId }))\n}\n\nconst connect = (\n configuration: DeviceConfiguration,\n state: State,\n): Effect.Effect<void, DeviceConnectionError> =>\n Effect.tryPromise({\n try: (signal) =>\n new Promise<void>((complete) => {\n const socket = new WebSocket(socketUrl(configuration), {\n maxPayload: maxSocketPayloadBytes,\n perMessageDeflate: false,\n allowSynchronousEvents: false,\n })\n let bots: ReadonlyArray<Bot> = []\n let refreshing = false\n const refreshBots = async (): Promise<void> => {\n if (\n refreshing ||\n configuration.grokGateway === undefined ||\n (configuration.providers !== undefined && !configuration.providers.includes(\"grok-bot\"))\n ) {\n return\n }\n refreshing = true\n bots = await discoverGrokBots(configuration.grokGateway).catch(() => [])\n refreshing = false\n if (!closed) {\n send(\n state,\n SocketEvent.make({\n _tag: \"DeviceHeartbeat\",\n deviceId: configuration.id,\n status: state.tasks.size > 0 || state.operation !== undefined ? \"busy\" : \"online\",\n bots,\n }),\n )\n }\n }\n const heartbeat = setInterval(() => {\n send(\n state,\n SocketEvent.make({\n _tag: \"DeviceHeartbeat\",\n deviceId: configuration.id,\n status: state.tasks.size > 0 || state.operation !== undefined ? \"busy\" : \"online\",\n ...(configuration.grokGateway === undefined ? {} : { bots }),\n }),\n )\n void refreshBots()\n }, 15_000)\n let closed = false\n let queuedMessages = 0\n const close = (): void => {\n if (closed) {\n return\n }\n closed = true\n clearInterval(heartbeat)\n if (state.socket === socket) {\n state.socket = undefined\n }\n complete()\n }\n signal.addEventListener(\n \"abort\",\n () => {\n socket.close()\n close()\n },\n { once: true },\n )\n socket.once(\"open\", () => {\n socket.send(\n JSON.stringify(SocketEvent.make({ _tag: \"Authenticate\", token: configuration.token })),\n )\n })\n socket.on(\"message\", (message: RawData) => {\n if (queuedMessages >= maxQueuedRelayMessages) {\n socket.close(4008, \"Message queue limit reached\")\n return\n }\n queuedMessages += 1\n state.processing = state.processing\n .then(async () => {\n if (closed) {\n return\n }\n const text = Buffer.isBuffer(message)\n ? message.toString(\"utf8\")\n : message instanceof ArrayBuffer\n ? Buffer.from(message).toString(\"utf8\")\n : Array.isArray(message)\n ? Buffer.concat(message).toString(\"utf8\")\n : Buffer.from(message).toString(\"utf8\")\n const event = await Effect.runPromise(\n Effect.try({\n try: () => JSON.parse(text) as unknown,\n catch: () => new DeviceConnectionError({ message: \"Relay sent invalid JSON\" }),\n }).pipe(Effect.flatMap(decodeSocketEvent)),\n )\n if (event._tag === \"Connected\") {\n state.socket = socket\n socket.send(\n JSON.stringify(\n SocketEvent.make({\n _tag: \"DeviceHello\",\n device: describeDevice(\n configuration,\n state.tasks.size > 0 || state.operation !== undefined ? \"busy\" : \"online\",\n bots,\n ),\n }),\n ),\n )\n for (const payload of state.terminal.values()) {\n socket.send(payload)\n }\n for (const payload of state.operationTerminal.values()) {\n socket.send(payload)\n }\n void refreshBots()\n return\n }\n if (event._tag === \"TaskAssigned\") {\n schedule(configuration, state, event.task)\n return\n }\n if (event._tag === \"CancelTask\") {\n cancel(state, event.taskId)\n return\n }\n if (event._tag === \"TaskSettled\") {\n state.terminal.delete(event.taskId)\n void cleanupBotReply(event.taskId).catch(() => {\n console.error(`Could not remove local bot reply for settled task ${event.taskId}`)\n })\n return\n }\n if (event._tag === \"OperationAssigned\") {\n scheduleOperation(configuration, state, event.operation)\n return\n }\n if (event._tag === \"OperationSettled\") {\n state.operationTerminal.delete(event.operationId)\n return\n }\n if (event._tag === \"Error\") {\n console.error(`Relay error: ${event.message}`)\n }\n })\n .catch((cause: unknown) => {\n console.error(\n `Invalid relay event: ${cause instanceof Error ? cause.message : String(cause)}`,\n )\n })\n .finally(() => {\n queuedMessages = Math.max(0, queuedMessages - 1)\n })\n })\n socket.once(\"close\", close)\n socket.once(\"error\", () => socket.close())\n }),\n catch: (cause) =>\n new DeviceConnectionError({\n message: cause instanceof Error ? cause.message : String(cause),\n }),\n })\n\nexport const runDaemon = (\n configuration: DeviceConfiguration,\n): Effect.Effect<void, DeviceConnectionError> => {\n const state: State = {\n socket: undefined,\n processing: Promise.resolve(),\n terminal: new Map(),\n queue: [],\n sessions: new Map(),\n tasks: new Map(),\n completed: new Set(),\n operation: undefined,\n operationQueue: [],\n operationTerminal: new Map(),\n completedOperations: new Set(),\n }\n return connect(configuration, state).pipe(\n Effect.repeat({ schedule: Schedule.spaced(\"2 seconds\") }),\n Effect.ensuring(\n Effect.sync(() => {\n state.socket?.close()\n for (const { controller } of state.tasks.values()) {\n controller.abort()\n }\n }),\n ),\n )\n}\n",
25
25
  "import { RelayClient } from \"@cohall/client\"\nimport { Provider, TaskId, ThreadId, version } from \"@cohall/protocol\"\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\"\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\"\nimport { Effect } from \"effect\"\nimport * as z from \"zod/v4\"\nimport type { ClientConfiguration } from \"./config.ts\"\nimport { createDelegation, listBots, taskResult, threadContext, waitForTask } from \"./delegation.ts\"\n\nconst output = (value: unknown) => ({\n content: [{ type: \"text\" as const, text: JSON.stringify(value, null, 2) }],\n})\n\nexport const runMcp = async (configuration: ClientConfiguration): Promise<void> => {\n const client = RelayClient.make({\n baseUrl: configuration.relayUrl,\n token: configuration.token,\n })\n const server = new McpServer({ name: \"cohall\", version })\n\n server.registerTool(\n \"list_devices\",\n {\n title: \"List Cohall devices\",\n description:\n \"List devices, their availability, local providers, capabilities, and allowed workspaces.\",\n inputSchema: {},\n },\n async () => output(await Effect.runPromise(client.devices())),\n )\n\n server.registerTool(\n \"list_bots\",\n {\n title: \"List Cohall bots\",\n description:\n \"List named Grok Bots on paired devices, their host availability, and unambiguous targets for delegate. Bot names can also be used when unique.\",\n inputSchema: {},\n },\n async () => output(listBots(await Effect.runPromise(client.devices()))),\n )\n\n server.registerTool(\n \"delegate\",\n {\n title: \"Send work to a device or bot\",\n description:\n \"Send focused work to a Cohall device or named Grok Bot. When the request depends on the current conversation, distill its motivation, relevant facts, prior findings, constraints, and desired decision into context; Cohall cannot read the host transcript. Never forward unrelated transcript content. Reuse thread_id for related follow-ups. Grok Bots use their existing conversation; a Cohall thread does not isolate it.\",\n inputSchema: {\n prompt: z.string().min(1).max(131_072),\n target: z\n .string()\n .optional()\n .describe(\n \"Device name, hostname or ID; @BotName; or @device/BotName. Use list_bots targets to disambiguate.\",\n ),\n provider: z\n .enum(Provider.literals)\n .optional()\n .describe(\"Inferred as grok-bot for a bot target; otherwise defaults to codex.\"),\n context: z\n .string()\n .max(131_072)\n .optional()\n .describe(\n \"Distilled context the target needs: why the user is asking, relevant facts and prior findings, constraints, and the intended decision. The calling agent must supply this when the prompt depends on its conversation; omit it only for a self-contained task.\",\n ),\n thread_id: z.string().uuid().optional(),\n parent_task_id: z\n .string()\n .uuid()\n .optional()\n .describe(\"The task delegating this work. Inherited from COHALL_TASK_ID when present.\"),\n workspace: z\n .string()\n .max(4096)\n .optional()\n .describe(\"Coding provider workspace. Omit for named Grok Bots.\"),\n wait: z.boolean().default(true),\n timeout_seconds: z.number().int().min(5).max(86_400).default(900),\n },\n },\n async ({\n prompt,\n target,\n provider,\n context,\n thread_id,\n parent_task_id,\n workspace,\n wait,\n timeout_seconds,\n }) => {\n const task = await Effect.runPromise(\n createDelegation(client, configuration, {\n prompt,\n ...(provider === undefined ? {} : { provider }),\n ...(target === undefined ? {} : { target }),\n ...(context === undefined ? {} : { context }),\n ...(thread_id === undefined ? {} : { threadId: ThreadId.make(thread_id) }),\n ...(parent_task_id === undefined ? {} : { parentTaskId: TaskId.make(parent_task_id) }),\n ...(workspace === undefined ? {} : { workspace }),\n }),\n )\n return output(\n taskResult(\n wait ? await Effect.runPromise(waitForTask(client, task, timeout_seconds)) : task,\n ),\n )\n },\n )\n\n server.registerTool(\n \"task_status\",\n {\n title: \"Get delegated task status\",\n description: \"Read the current state and result of a Cohall task.\",\n inputSchema: { task_id: z.string().uuid() },\n },\n async ({ task_id }) =>\n output(taskResult(await Effect.runPromise(client.getTask(TaskId.make(task_id))))),\n )\n\n server.registerTool(\n \"task_trace\",\n {\n title: \"Trace a delegated task\",\n description:\n \"Read the redacted relay and device lifecycle for troubleshooting a Cohall task.\",\n inputSchema: { task_id: z.string().uuid() },\n },\n async ({ task_id }) => output(await Effect.runPromise(client.traceTask(TaskId.make(task_id)))),\n )\n\n server.registerTool(\n \"wait_task\",\n {\n title: \"Wait for delegated work\",\n description: \"Wait for a Cohall task to finish and return its final result.\",\n inputSchema: {\n task_id: z.string().uuid(),\n timeout_seconds: z.number().int().min(5).max(86_400).default(900),\n },\n },\n async ({ task_id, timeout_seconds }) => {\n const task = await Effect.runPromise(client.getTask(TaskId.make(task_id)))\n return output(taskResult(await Effect.runPromise(waitForTask(client, task, timeout_seconds))))\n },\n )\n\n server.registerTool(\n \"cancel_task\",\n {\n title: \"Cancel delegated work\",\n description:\n \"Request cancellation of coding work or a queued Bot task. Active Grok Bot tasks must be stopped in Grok Bot.\",\n inputSchema: { task_id: z.string().uuid() },\n },\n async ({ task_id }) =>\n output(taskResult(await Effect.runPromise(client.cancelTask(TaskId.make(task_id))))),\n )\n\n server.registerTool(\n \"thread_context\",\n {\n title: \"Read a Cohall thread\",\n description: \"Read shared task prompts and final results for a cross-device thread.\",\n inputSchema: { thread_id: z.string().uuid() },\n },\n async ({ thread_id }) =>\n output(await Effect.runPromise(threadContext(client, ThreadId.make(thread_id)))),\n )\n\n await server.connect(new StdioServerTransport())\n}\n"
26
26
  ],
27
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA,IAGa,UACuD,SAEvD,uBAEP,UAAU,CAAC,cACf,OAAO,OAAO,MAAM,OAAO,YAAY,CAAC,GAAG,OAAO,YAAY,SAAS,CAAC,GACpE,eAAe,CAAC,cAAsB,OAAO,OAAO,MAAM,OAAO,YAAY,SAAS,CAAC,GACvF,eAAe,CAAuB,QAAW,cACrD,OAAO,MAAM,MAAM,EAAE,MAAM,OAAO,YAAY,SAAS,CAAC,GACpD,OACA,OAAO,CAAsB,SACjC,OAAO,OAAO,MAAM,OAAO,OAAO,CAAC,CAAC,EAAE,KAAK,OAAO,MAAM,IAAI,CAAC,GACzD,eAAe,CAAsB,SACzC,OAAO,OAAO,MACZ,OAAO,UAAU,wDAAwD;AAAA,EACvE,UAAU;AACZ,CAAC,CACH,EAAE,KAAK,OAAO,MAAM,IAAI,CAAC,GAEd,OAGA,KAOA,UAEA,UAEA,WAEA,QAEA,eAEA,aAEA,WAGA,UAEA,UAEA,cAEA,YAUA,iBAQA,oBAEA,aAEA,gBAGA,aAYA,oBAMA,mBAMA,sBAKA,mBAMA,eAKA,YAOA,WAMA,QAiBA,gCAAgC,SAEvC,gBAAgB,CAAC,UAA0E;AAAA,EAC/F,MAAM,QAAQ,iEAAiE,KAAK,KAAK;AAAA,EACzF,IAAI,UAAU,MAAM;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAM,OAAO,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,MAAM;AAAA,EACzC,IAAI,KAAK,WAAW,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,OAAO,cAAc,IAAI,CAAC,GAAG;AAAA,IACzE;AAAA,EACF;AAAA,EACA,OAAO,CAAC,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,MAAM,OAAO,SAAS;AAAA,GAG7D,2BAA2B,CAAC,cAA+B;AAAA,EACtE,IAAI,cAAc,qBAAqB;AAAA,IACrC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,cAAc,SAAS;AAAA,EACvC,MAAM,UAAU,cAAc,6BAA6B;AAAA,EAC3D,IAAI,YAAY,aAAa,YAAY,WAAW;AAAA,IAClD,OAAO;AAAA,EACT;AAAA,EACA,SAAS,QAAQ,EAAG,QAAQ,GAAG,SAAS,GAAG;AAAA,IACzC,IAAI,QAAQ,WAAW,QAAQ,QAAQ;AAAA,MACrC,QAAQ,QAAQ,UAAU,MAAM,QAAQ,UAAU;AAAA,IACpD;AAAA,EACF;AAAA,EACA,OAAO,CAAC,QAAQ;AAAA,GAGL,+BAA+B,CAC1C,YACS;AAAA,EACT,MAAM,cAAc,QAAQ,OAAO,CAAC,WAAW,CAAC,yBAAyB,OAAO,OAAO,CAAC;AAAA,EACxF,IAAI,YAAY,WAAW,GAAG;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,MAAM,IAAI,MACR,sCAAsC,uFAAuF,YAAY,IAAI,CAAC,WAAW,GAAG,OAAO,SAAS,OAAO,UAAU,EAAE,KAAK,IAAI,GAC1M;AAAA,GAGW,QASA,SAYP,iBAAiB,CAAC,UAIlB;AAAA,EACJ,MAAM,WAAW,MAAM,aAAa,MAAM,UAAU,YAAY,UAAU;AAAA,EAC1E,IAAI,aAAa,cAAc,MAAM,cAAc,WAAW;AAAA,IAC5D,OAAO;AAAA,EACT;AAAA,EACA,OAAQ,aAAa,gBAAiB,MAAM,UAAU,aAClD,YACA;AAAA,GAGO,MAsBA,WAAW,CAAC,SACvB,KAAK,aAAa,aAAa,YAAY,KAAK,UAAU,OAEtD,gBAMO,8BAQA,iBAeA,kBAWA,eAMA,aASA,cAQA,gBAOA,WAoBA,eAQA,iBAaA,aA6BA,eAKA,sBAKA,iBAAiB,CAAC,SAAwB,qBAAqB,IAAI,KAAK,MAAM,GAC9E,MAAM,MAAiB,UAAU,KAAK,IAAI,KAAK,EAAE,YAAY,CAAC,GAC9D,eAAe,MAAgB,SAAS,KAAK,OAAO,WAAW,CAAC,GAChE,eAAe,MAAgB,SAAS,KAAK,OAAO,WAAW,CAAC,GAChE,gBAAgB,MAAiB,UAAU,KAAK,OAAO,WAAW,CAAC,GACnE,aAAa,MAAc,OAAO,KAAK,OAAO,WAAW,CAAC,GAC1D,oBAAoB,MAAqB,cAAc,KAAK,OAAO,WAAW,CAAC,GAC/E,kBAAkB,MAAmB,YAAY,KAAK,OAAO,WAAW,CAAC,GAEzE,0BACA,4BACA,wBAAwB,CAAC,UACpC,OAAO,oBAAoB,eAAe,EAAE,KAAK,EAAE,KACjD,OAAO,IACL,CAAC,UAA2B;AAAA,KACvB;AAAA,EACH,UAAU,KAAK,aAAa,KAAK,UAAU,YAAY,UAAU;AACnE,EACF,CACF,GACW,oCAGA,cACA;AAAA;AAAA,EApaA,wBAAwB,OAAO;AAAA,EAOtC,QAAQ,OAAO,IAAI,MAAM,OAAO,UAAU,EAAE,SAAS,GAAG,SAAS,OAAO,iBAAiB,CAAC,CAAC;AAAA,EAUpF,QAAQ,QAAQ,GAAG,EAAE,KAAK,OAAO,MAAM,OAAO,CAAC;AAAA,EAG/C,MAAM,OAAO,OAAO;AAAA,IAC/B,IAAI;AAAA,IACJ,MAAM,QAAQ,GAAG;AAAA,IACjB,aAAa,OAAO,YAAY,aAAa,GAAG,CAAC;AAAA,EACnD,CAAC;AAAA,EAGY,WAAW,KAAK,UAAU;AAAA,EAE1B,WAAW,KAAK,UAAU;AAAA,EAE1B,YAAY,KAAK,WAAW;AAAA,EAE5B,SAAS,KAAK,QAAQ;AAAA,EAEtB,gBAAgB,KAAK,eAAe;AAAA,EAEpC,cAAc,KAAK,aAAa;AAAA,EAEhC,YAAY,aAAa,WAAW;AAAA,EAGpC,WAAW,OAAO,SAAS,CAAC,UAAU,SAAS,WAAW,SAAS,CAAC;AAAA,EAEpE,WAAW,OAAO,SAAS,CAAC,SAAS,eAAe,YAAY,UAAU,CAAC;AAAA,EAE3E,eAAe,OAAO,SAAS,CAAC,UAAU,QAAQ,SAAS,CAAC;AAAA,EAE5D,aAAa,OAAO,SAAS;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EAEY,kBAAkB,OAAO,SAAS;AAAA,IAC7C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EAEY,qBAAqB,OAAO,SAAS,CAAC,GAAG,WAAW,UAAU,UAAU,CAAC;AAAA,EAEzE,cAAc,OAAO,SAAS,CAAC,SAAS,SAAS,QAAQ,CAAC;AAAA,EAE1D,iBAAiB,OAAO,SAAS,CAAC,UAAU,QAAQ,CAAC;AAAA,EAGrD,cAAc,OAAO,OAAO;AAAA,IACvC,IAAI;AAAA,IACJ,OAAO,QAAQ,GAAG;AAAA,IAClB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU,OAAO,YAAY,QAAQ;AAAA,IACrC,WAAW,OAAO,YAAY,SAAS;AAAA,EACzC,CAAC;AAAA,EAGY,qBAAqB,OAAO,OAAO;AAAA,IAC9C,OAAO,QAAQ,GAAG;AAAA,IAClB,OAAO,aAAa,gBAAgB,CAAC;AAAA,EACvC,CAAC;AAAA,EAGY,oBAAoB,OAAO,OAAO;AAAA,IAC7C,OAAO,QAAQ,GAAG;AAAA,IAClB,WAAW;AAAA,EACb,CAAC;AAAA,EAGY,uBAAuB,OAAO,OAAO;AAAA,IAChD,OAAO,QAAQ,GAAG;AAAA,EACpB,CAAC;AAAA,EAGY,oBAAoB,OAAO,OAAO;AAAA,IAC7C,OAAO,QAAQ,GAAG;AAAA,IAClB,SAAS;AAAA,EACX,CAAC;AAAA,EAGY,gBAAgB,OAAO,OAAO;AAAA,IACzC,aAAa,aAAa,mBAAmB,CAAC;AAAA,EAChD,CAAC;AAAA,EAGY,aAAa,OAAO,OAAO;AAAA,IACtC,IAAI,QAAQ,EAAE;AAAA,IACd,OAAO,QAAQ,GAAG;AAAA,IAClB,QAAQ,OAAO,YAAY,aAAa,GAAG,CAAC;AAAA,EAC9C,CAAC;AAAA,EAGY,YAAY,OAAO,OAAO;AAAA,IACrC,MAAM,QAAQ,IAAI;AAAA,IAClB,OAAO,QAAQ,GAAG;AAAA,EACpB,CAAC;AAAA,EAGY,SAAS,OAAO,OAAO;AAAA,IAClC,IAAI;AAAA,IACJ,MAAM,QAAQ,GAAG;AAAA,IACjB,UAAU,QAAQ,GAAG;AAAA,IACrB,UAAU;AAAA,IACV,cAAc,QAAQ,EAAE;AAAA,IACxB,QAAQ;AAAA,IACR,WAAW,aAAa,UAAU,SAAS,SAAS,MAAM;AAAA,IAC1D,MAAM,OAAO,YAAY,aAAa,KAAK,GAAG,CAAC;AAAA,IAC/C,cAAc,aAAa,YAAY,EAAE;AAAA,IACzC,YAAY,aAAa,WAAW,EAAE;AAAA,IACtC,SAAS,QAAQ,EAAE;AAAA,IACnB,YAAY;AAAA,IACZ,aAAa,OAAO,YAAY,SAAS;AAAA,EAC3C,CAAC;AAAA,EA8CY,SAAS,OAAO,OAAO;AAAA,IAClC,IAAI;AAAA,IACJ,OAAO,QAAQ,GAAG;AAAA,IAClB,WAAW;AAAA,IACX,WAAW;AAAA,IACX,iBAAiB,OAAO,YAAY,QAAQ;AAAA,EAC9C,CAAC;AAAA,EAGY,UAAU,OAAO,OAAO;AAAA,IACnC,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,YAAY,QAAQ,GAAG;AAAA,IACvB,SAAS,aAAa,MAAO;AAAA,IAC7B,WAAW;AAAA,IACX,QAAQ,OAAO,YAAY,MAAM;AAAA,IACjC,UAAU,OAAO,YAAY,QAAQ;AAAA,EACvC,CAAC;AAAA,EAiBY,OAAO,OAAO,OAAO;AAAA,IAChC,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,QAAQ,QAAQ,MAAO;AAAA,IACvB,SAAS,OAAO,YAAY,aAAa,MAAO,CAAC;AAAA,IACjD,UAAU;AAAA,IACV,OAAO,OAAO,YAAY,KAAK;AAAA,IAC/B,QAAQ;AAAA,IACR,gBAAgB,OAAO,YAAY,QAAQ;AAAA,IAC3C,gBAAgB;AAAA,IAChB,cAAc,OAAO,YAAY,MAAM;AAAA,IACvC,WAAW,OAAO,YAAY,QAAQ,IAAI,CAAC;AAAA,IAC3C,mBAAmB,OAAO,YAAY,QAAQ,IAAI,CAAC;AAAA,IACnD,QAAQ,OAAO,YAAY,aAAa,MAAO,CAAC;AAAA,IAChD,OAAO,OAAO,YAAY,aAAa,KAAM,CAAC;AAAA,IAC9C,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW,OAAO,YAAY,SAAS;AAAA,IACvC,aAAa,OAAO,YAAY,SAAS;AAAA,EAC3C,CAAC,EAAE,MAAM,OAAO,WAAW,cAAc,CAAC;AAAA,EAMpC,iBAAiB,OAAO,OAAO,MACnC,OAAO,UAAU,yEAAyE;AAAA,IACxF,UAAU;AAAA,EACZ,CAAC,CACH;AAAA,EAEa,+BAA+B,OAAO,OAAO;AAAA,IACxD,QAAQ;AAAA,IACR,SAAS,OAAO;AAAA,EAClB,CAAC;AAAA,EAKY,kBAAkB,OAAO,OAAO;AAAA,IAC3C,IAAI;AAAA,IACJ,MAAM,OAAO,QAAQ,SAAS;AAAA,IAC9B,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,SAAS,OAAO;AAAA,IAChB,QAAQ,OAAO,YAAY,aAAa,KAAM,CAAC;AAAA,IAC/C,OAAO,OAAO,YAAY,aAAa,KAAM,CAAC;AAAA,IAC9C,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa,OAAO,YAAY,SAAS;AAAA,EAC3C,CAAC;AAAA,EAGY,mBAAmB,OAAO,OAAO;AAAA,IAC5C,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,WAAW;AAAA,EACb,CAAC;AAAA,EAGY,gBAAgB,OAAO,OAAO;AAAA,IACzC,UAAU;AAAA,IACV,OAAO;AAAA,EACT,CAAC;AAAA,EAGY,cAAc,OAAO,OAAO;AAAA,IACvC,UAAU;AAAA,IACV,YAAY,QAAQ,GAAG;AAAA,IACvB,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY,aAAa,eAAe,SAAS,SAAS,MAAM;AAAA,EAClE,CAAC;AAAA,EAGY,eAAe,OAAO,OAAO;AAAA,IACxC,eAAe;AAAA,IACf,UAAU;AAAA,IACV,YAAY,aAAa,eAAe,SAAS,SAAS,MAAM;AAAA,IAChE,SAAS,aAAa,aAAa,GAAG;AAAA,EACxC,CAAC;AAAA,EAGY,iBAAiB,OAAO,OAAO;AAAA,IAC1C,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,QAAQ,OAAO,YAAY,aAAa,GAAG,CAAC;AAAA,EAC9C,CAAC;AAAA,EAGY,YAAY,OAAO,OAAO;AAAA,IACrC,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO,OAAO,YAAY,KAAK;AAAA,IAC/B,gBAAgB,OAAO,YAAY,QAAQ;AAAA,IAC3C,cAAc;AAAA,IACd,cAAc,OAAO,YAAY,MAAM;AAAA,IACvC,WAAW,OAAO,YAAY,QAAQ,IAAI,CAAC;AAAA,IAC3C,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW,OAAO,YAAY,SAAS;AAAA,IACvC,aAAa,OAAO,YAAY,SAAS;AAAA,IACzC,QAAQ,aAAa,gBAAgB,GAAG;AAAA,IACxC,WAAW,OAAO;AAAA,IAClB,OAAO,OAAO,YAAY,aAAa,KAAM,CAAC;AAAA,EAChD,CAAC,EAAE,MAAM,OAAO,WAAW,cAAc,CAAC;AAAA,EAG7B,gBAAgB,OAAO,OAAO;AAAA,IACzC,QAAQ;AAAA,IACR,UAAU,aAAa,SAAS,EAAE;AAAA,IAClC,OAAO,aAAa,MAAM,EAAE;AAAA,IAC5B,WAAW,OAAO;AAAA,EACpB,CAAC;AAAA,EAGY,kBAAkB,OAAO,OAAO;AAAA,IAC3C,UAAU,OAAO,YAAY,QAAQ;AAAA,IACrC,OAAO,OAAO,YAAY,QAAQ,GAAG,CAAC;AAAA,IACtC,QAAQ,QAAQ,MAAO;AAAA,IACvB,SAAS,OAAO,YAAY,aAAa,MAAO,CAAC;AAAA,IACjD,UAAU,OAAO,YAAY,QAAQ;AAAA,IACrC,OAAO,OAAO,YAAY,KAAK;AAAA,IAC/B,gBAAgB,OAAO,YAAY,QAAQ;AAAA,IAC3C,cAAc,OAAO,YAAY,MAAM;AAAA,IACvC,WAAW,OAAO,YAAY,QAAQ,IAAI,CAAC;AAAA,EAC7C,CAAC,EAAE,MAAM,OAAO,WAAW,cAAc,CAAC;AAAA,EAG7B,cAAc,OAAO,YAAY;AAAA,IAC5C,cAAc,EAAE,OAAO,QAAQ,GAAG,EAAE;AAAA,IACpC,WAAW,EAAE,eAAe,QAAQ,EAAE,GAAG,aAAa,UAAU;AAAA,IAChE,aAAa,EAAE,QAAQ,OAAO;AAAA,IAC9B,iBAAiB;AAAA,MACf,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,MAAM,OAAO,YAAY,aAAa,KAAK,GAAG,CAAC;AAAA,IACjD;AAAA,IACA,cAAc,EAAE,MAAM,KAAK;AAAA,IAC3B,cAAc,EAAE,QAAQ,OAAO;AAAA,IAC/B,cAAc;AAAA,MACZ,QAAQ;AAAA,MACR,QAAQ,aAAa,MAAO;AAAA,MAC5B,mBAAmB,OAAO,YAAY,QAAQ,IAAI,CAAC;AAAA,IACrD;AAAA,IACA,YAAY,EAAE,QAAQ,QAAQ,OAAO,QAAQ,KAAM,EAAE;AAAA,IACrD,eAAe,EAAE,QAAQ,OAAO;AAAA,IAChC,aAAa,EAAE,QAAQ,OAAO;AAAA,IAC9B,YAAY,EAAE,QAAQ,OAAO;AAAA,IAC7B,mBAAmB,EAAE,WAAW,gBAAgB;AAAA,IAChD,mBAAmB,EAAE,aAAa,YAAY;AAAA,IAC9C,mBAAmB,EAAE,aAAa,aAAa,QAAQ,aAAa,KAAM,EAAE;AAAA,IAC5E,iBAAiB,EAAE,aAAa,aAAa,OAAO,QAAQ,KAAM,EAAE;AAAA,IACpE,kBAAkB,EAAE,aAAa,YAAY;AAAA,IAC7C,OAAO,EAAE,MAAM,QAAQ,EAAE,GAAG,SAAS,QAAQ,IAAI,EAAE;AAAA,EACrD,CAAC;AAAA,EAGY,gBAAgB,OAAO,OAAO;AAAA,IACzC,OAAO,QAAQ,IAAI;AAAA,EACrB,CAAC;AAAA,EAGY,uBAAgD,IAAI,IAAI;AAAA,IACnE;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EAUY,2BAA2B,OAAO,oBAAoB,kBAAkB;AAAA,EACxE,6BAA6B,OAAO,oBAAoB,oBAAoB;AAAA,EAU5E,qCAAqC,OAAO,oBACvD,4BACF;AAAA,EACa,eAAe,OAAO,oBAAoB,MAAM;AAAA,EAChD,oBAAoB,OAAO,oBAAoB,WAAW;AAAA;;;AC1avE,mBAAS,oBAAQ;AACjB,mBAAS,kBAAQ,iBAAO,oBAAO,wBAAU;AACzC,oBAAS,sBAAS;AAClB,iBAAS,kBAAM;AAAA,IAEF,oBAWP,uBAAuB,MAAc;AAAA,EACzC,IAAI,UAAS,MAAM,SAAS;AAAA,IAC1B,OAAO,MAAK,QAAQ,IAAI,gBAAgB,MAAK,SAAQ,GAAG,WAAW,OAAO,GAAG,QAAQ;AAAA,EACvF;AAAA,EACA,IAAI,UAAS,MAAM,UAAU;AAAA,IAC3B,OAAO,MAAK,SAAQ,GAAG,WAAW,uBAAuB,UAAU,OAAO;AAAA,EAC5E;AAAA,EACA,OAAO,MAAK,QAAQ,IAAI,iBAAiB,MAAK,SAAQ,GAAG,UAAU,OAAO,GAAG,QAAQ;AAAA,GAGjF,iBAAiB,MACrB,MAAM,KAAK,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,UACtD,MAAM,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CACpC,EAAE,KAAK,EAAE,GAEL,YAAY,OAAO,SAAkC;AAAA,EACzD,IACE,MAAM,QAAO,IAAI,EACd,KAAK,MAAM,IAAI,EACf,MAAM,MAAM,KAAK,GACpB;AAAA,IACA,QAAQ,MAAM,UAAS,MAAM,MAAM,GAAG,KAAK;AAAA,EAC7C;AAAA,EACA,MAAM,QAAQ,eAAe;AAAA,EAC7B,MAAM,WAAU,MAAM,GAAG;AAAA,GAAW,EAAE,MAAM,IAAM,CAAC;AAAA,EACnD,IAAI,UAAS,MAAM,SAAS;AAAA,IAC1B,MAAM,OAAM,MAAM,GAAK;AAAA,EACzB;AAAA,EACA,OAAO;AAAA,GAGH,qBAAqB,CAAC,SAA0B;AAAA,EACpD,MAAM,QAAQ,QAAQ,IAAI;AAAA,EAC1B,IAAI,UAAU,aAAa,UAAU,WAAW,UAAU,KAAK;AAAA,IAC7D,OAAO;AAAA,EACT;AAAA,EACA,IAAI,UAAU,UAAU,UAAU,KAAK;AAAA,IACrC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,IAAI,MAAM,GAAG,4BAA4B;AAAA,GAG3C,cAAa,CAAC,SAClB,SAAS,eAAe,SAAS,eAAe,SAAS,OAE9C;AAAA;AAAA,EAxDA,qBAAqB,SAAO,OAAO;AAAA,IAC9C,MAAM,SAAO;AAAA,IACb,MAAM,SAAO,IAAI,MAAM,SAAO,UAAU,EAAE,SAAS,GAAG,SAAS,MAAO,CAAC,CAAC;AAAA,IACxE,OAAO,SAAO,OAAO,MAAM,SAAO,YAAY,EAAE,CAAC;AAAA,IACjD,eAAe,SAAO;AAAA,IACtB,cAAc,SAAO;AAAA,IACrB,aAAa,SAAO;AAAA,IACpB,kBAAkB,SAAO,IAAI,MAAM,SAAO,UAAU,EAAE,SAAS,KAAK,SAAS,IAAQ,CAAC,CAAC;AAAA,EACzF,CAAC;AAAA,EAgDY,+BAA+B,SAAO,WAAW;AAAA,IAC5D,KAAK,YAAY;AAAA,MACf,MAAM,OAAO,QAAQ,IAAI,qBAAqB;AAAA,MAC9C,MAAM,OAAO,OAAO,QAAQ,IAAI,qBAAqB,MAAM;AAAA,MAC3D,MAAM,cAAc,mBAAmB,2BAA2B;AAAA,MAClE,IAAI,CAAC,YAAW,IAAI,KAAK,CAAC,aAAa;AAAA,QACrC,MAAM,IAAI,MACR,wHACF;AAAA,MACF;AAAA,MACA,MAAM,gBAAgB,SAAQ,QAAQ,IAAI,mBAAmB,qBAAqB,CAAC;AAAA,MACnF,MAAM,OAAM,eAAe,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAAA,MAC3D,IAAI,UAAS,MAAM,SAAS;AAAA,QAC1B,MAAM,OAAM,eAAe,GAAK;AAAA,MAClC;AAAA,MACA,MAAM,QAAQ,QAAQ,IAAI,gBAAiB,MAAM,UAAU,MAAK,eAAe,aAAa,CAAC;AAAA,MAC7F,IAAI,MAAM,SAAS,IAAI;AAAA,QACrB,MAAM,IAAI,MAAM,6DAA6D;AAAA,MAC/E;AAAA,MACA,MAAM,mBAAmB,OAAO,QAAQ,IAAI,6BAA6B,MAAM;AAAA,MAC/E,OAAO,SAAO,kBAAkB,kBAAkB,EAAE;AAAA,QAClD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,MAAK,eAAe,WAAW;AAAA,QAC7C;AAAA,QACA;AAAA,MACF,CAAC;AAAA;AAAA,IAEH,OAAO,CAAC,UAAW,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,EAC7E,CAAC;AAAA;;;AC3FD,sBAAS;AAAA;AAkBF,MAAM,IAAI;AAAA,EACN,cAAc,IAAI;AAAA,EAClB,WAAW,IAAI;AAAA,EACf,aAAa,IAAI;AAAA,EACjB,YAAY,IAAI;AAAA,EAChB,gBAAgB,IAAI;AAAA,EAE7B,MAAM,CAAC,QAA0B,WAA+B;AAAA,IAC9D,IAAI,UAAU,cAAc,WAAW;AAAA,MACrC,IAAI,KAAK,cAAc,QAAQ,IAAI;AAAA,QACjC,OAAO;AAAA,MACT;AAAA,MACA,KAAK,cAAc,IAAI,MAAM;AAAA,IAC/B,EAAO;AAAA,MACL,MAAM,WAAW,KAAK,UAAU,IAAI,UAAU,SAAS;AAAA,MACvD,IAAI,aAAa,aAAa,SAAS,eAAe,WAAU,MAAM;AAAA,QACpE,OAAO;AAAA,MACT;AAAA,MACA,KAAK,UAAU,IAAI,UAAU,WAAW,MAAM;AAAA;AAAA,IAEhD,KAAK,YAAY,IAAI,QAAQ,SAAS;AAAA,IACtC,IAAI,OAAO,KAAK,kBAAkB,WAAW;AAAA,MAC3C,aAAa,OAAO,KAAK,aAAa;AAAA,MACtC,OAAO,KAAK,gBAAgB;AAAA,IAC9B;AAAA,IACA,OAAO;AAAA;AAAA,EAGT,YAAY,CAAC,QAAmC;AAAA,IAC9C,MAAM,YAAY,KAAK,YAAY,IAAI,MAAM;AAAA,IAC7C,IAAI,cAAc,WAAW;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA,IACA,IAAI,UAAU,cAAc,aAAa,KAAK,MAAM,UAAU,SAAS,KAAK,KAAK,IAAI,GAAG;AAAA,MACtF,OAAO,MAAM,MAAM,iBAAiB;AAAA,MACpC,OAAO;AAAA,IACT;AAAA,IACA,OAAO;AAAA;AAAA,EAGT,aAAa,CAAC,QAAgD;AAAA,IAC5D,OAAO,KAAK,YAAY,IAAI,MAAM,GAAG;AAAA;AAAA,EAGvC,cAAc,CAAC,UAAoB,QAAmC;AAAA,IACpE,IAAI,KAAK,WAAW,IAAI,MAAM,GAAG;AAAA,MAC/B,OAAO;AAAA,IACT;AAAA,IACA,MAAM,WAAW,KAAK,SAAS,IAAI,QAAQ;AAAA,IAC3C,IAAI,aAAa,aAAa,aAAa,UAAU,SAAS,eAAe,WAAU,MAAM;AAAA,MAC3F,OAAO;AAAA,IACT;AAAA,IACA,KAAK,SAAS,IAAI,UAAU,MAAM;AAAA,IAClC,KAAK,WAAW,IAAI,QAAQ,QAAQ;AAAA,IACpC,IAAI,OAAO,KAAK,kBAAkB,WAAW;AAAA,MAC3C,aAAa,OAAO,KAAK,aAAa;AAAA,MACtC,OAAO,KAAK,gBAAgB;AAAA,IAC9B;AAAA,IACA,OAAO;AAAA;AAAA,EAGT,kBAAkB,GAAW;AAAA,IAC3B,OAAO,KAAK,YAAY,OAAO,KAAK,WAAW;AAAA;AAAA,EAGjD,MAAM,CAAC,QAAgD;AAAA,IACrD,IAAI,OAAO,KAAK,kBAAkB,WAAW;AAAA,MAC3C,aAAa,OAAO,KAAK,aAAa;AAAA,IACxC;AAAA,IACA,MAAM,YAAY,KAAK,YAAY,IAAI,MAAM;AAAA,IAC7C,KAAK,YAAY,OAAO,MAAM;AAAA,IAC9B,KAAK,cAAc,OAAO,MAAM;AAAA,IAChC,IAAI,WAAW,cAAc,aAAa,KAAK,UAAU,IAAI,UAAU,SAAS,MAAM,QAAQ;AAAA,MAC5F,KAAK,UAAU,OAAO,UAAU,SAAS;AAAA,IAC3C;AAAA,IACA,MAAM,WAAW,KAAK,WAAW,IAAI,MAAM;AAAA,IAC3C,KAAK,WAAW,OAAO,MAAM;AAAA,IAC7B,IAAI,aAAa,aAAa,KAAK,SAAS,IAAI,QAAQ,MAAM,QAAQ;AAAA,MACpE;AAAA,IACF;AAAA,IACA,KAAK,SAAS,OAAO,QAAQ;AAAA,IAC7B,OAAO;AAAA;AAAA,EAGT,QAAQ,CAAC,QAAgD;AAAA,IACvD,OAAO,KAAK,WAAW,IAAI,MAAM;AAAA;AAAA,EAGnC,YAAY,CAAC,WAAgC;AAAA,IAC3C,YAAY,QAAQ,cAAc,KAAK,aAAa;AAAA,MAClD,IAAI,UAAU,cAAc,WAAW;AAAA,QACrC,OAAO,MAAM,MAAM,iBAAiB;AAAA,MACtC;AAAA,IACF;AAAA;AAAA,EAGF,WAAW,CAAC,UAA0B;AAAA,IACpC,KAAK,SAAS,IAAI,QAAQ,GAAG,MAAM,MAAM,kBAAkB;AAAA;AAAA,EAG7D,SAAS,CAAC,UAA6B;AAAA,IACrC,OAAO,KAAK,SAAS,IAAI,QAAQ,GAAG,eAAe,WAAU;AAAA;AAAA,EAG/D,YAAY,CAAC,UAAoB,OAA6B;AAAA,IAC5D,MAAM,SAAS,KAAK,SAAS,IAAI,QAAQ;AAAA,IACzC,IAAI,QAAQ,eAAe,WAAU,QAAQ,CAAC,KAAK,aAAa,MAAM,GAAG;AAAA,MACvE,OAAO;AAAA,IACT;AAAA,IACA,IAAI;AAAA,MACF,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,MACjC,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA;AAAA;AAGb;AAAA;;;ACvIA,yBAAS;AAAA;AAMT,MAAM,UAAwD;AAAA,EACnD;AAAA,EAET,WAAW,CAAC,WAA0B;AAAA,IACpC,KAAK,aAAa;AAAA;AAAA,EAGpB,GAAG,IAAI,YAAoC;AAAA,IACzC,MAAM,MAAM,KAAK,WAAW,IAAI,GAAG,UAAU;AAAA,IAC7C,OAAO,QAAQ,YAAY,OAAQ;AAAA;AAAA,EAGrC,GAAG,IAAI,YAA4C;AAAA,IACjD,OAAO,KAAK,WAAW,IAAI,GAAG,UAAU;AAAA;AAAA,EAG1C,GAAG,IAAI,YAAmC;AAAA,IACxC,MAAM,SAAS,KAAK,WAAW,IAAI,GAAG,UAAU;AAAA,IAChD,OAAO,EAAE,SAAS,OAAO,OAAO,OAAO,EAAE;AAAA;AAE7C;AAAA;AAEO,MAAM,SAAS;AAAA,EACX;AAAA,EAET,WAAW,CAAC,MAAc;AAAA,IACxB,KAAK,YAAY,IAAI,cAAa,IAAI;AAAA;AAAA,EAGxC,KAGC,CAAC,KAAyC;AAAA,IACzC,OAAO,IAAI,UAAU,KAAK,UAAU,QAAQ,GAAG,CAAC;AAAA;AAAA,EAGlD,IAAI,CAAC,KAAmB;AAAA,IACtB,KAAK,UAAU,KAAK,GAAG;AAAA;AAAA,EAGzB,WAAmB,CAAC,WAAuC;AAAA,IACzD,OAAO,MAAM;AAAA,MACX,KAAK,UAAU,KAAK,iBAAiB;AAAA,MACrC,IAAI;AAAA,QACF,MAAM,SAAS,UAAU;AAAA,QACzB,KAAK,UAAU,KAAK,QAAQ;AAAA,QAC5B,OAAO;AAAA,QACP,OAAO,OAAO;AAAA,QACd,KAAK,UAAU,KAAK,UAAU;AAAA,QAC9B,MAAM;AAAA;AAAA;AAAA;AAAA,EAKZ,KAAK,GAAS;AAAA,IACZ,KAAK,UAAU,MAAM;AAAA;AAEzB;AAAA;;;;;;;;;;;ACvBA,oBAAS,oBAAS,mBAAQ,kBAAO;AACjC,uBAAS;AAAA,IAGI,kBAqNA,UAEP,iBACJ,CAAC,cACD,CAAC,UACC,IAAI,iBAAiB;AAAA,EACnB;AAAA,EACA,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAChE,CAAC,GAEC,UAAS,CACb,WACA,QACA,UAEA,SAAO,oBAAoB,MAAM,EAAE,KAAK,EAAE,KAAK,SAAO,SAAS,eAAe,SAAS,CAAC,CAAC,GAErF,gBAAgB,CAAC,QACrB,QAAO,2BAA2B,QAAQ;AAAA,EACxC,IAAI,IAAI;AAAA,EACR,OAAO,IAAI;AAAA,EACX,WAAW,IAAI;AAAA,EACf,WAAW,IAAI;AAAA,KACX,IAAI,sBAAsB,OAAO,CAAC,IAAI,EAAE,iBAAiB,IAAI,kBAAkB;AACrF,CAAC,GAEG,iBAAiB,CAAC,QACtB,QAAO,4BAA4B,SAAS;AAAA,EAC1C,IAAI,IAAI;AAAA,EACR,UAAU,IAAI;AAAA,EACd,MAAM,IAAI,SAAS,SAAS,UAAU,IAAI;AAAA,EAC1C,YAAY,IAAI;AAAA,EAChB,SAAS,IAAI;AAAA,EACb,WAAW,IAAI;AAAA,KACX,IAAI,YAAY,OAAO,CAAC,IAAI,EAAE,QAAQ,IAAI,QAAQ;AAAA,KAClD,IAAI,cAAc,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,UAAU;AAC9D,CAAC,GAEG,gBAAgB,CAAC,QACrB,QAAO,2BAA2B,QAAQ;AAAA,EACxC,IAAI,IAAI;AAAA,EACR,MAAM,IAAI;AAAA,EACV,UAAU,IAAI;AAAA,EACd,UAAU,IAAI;AAAA,EACd,cAAc,IAAI;AAAA,EAClB,QAAQ,IAAI;AAAA,EACZ,WAAW,KAAK,MAAM,IAAI,cAAc;AAAA,KACpC,IAAI,cAAc,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,IAAI,SAAS,EAAa;AAAA,EAC/E,cAAc,KAAK,MAAM,IAAI,iBAAiB;AAAA,EAC9C,YAAY,KAAK,MAAM,IAAI,eAAe;AAAA,EAC1C,SAAS,IAAI;AAAA,EACb,YAAY,IAAI;AAAA,KACZ,IAAI,iBAAiB,OAAO,CAAC,IAAI,EAAE,aAAa,IAAI,aAAa;AACvE,CAAC,GAEG,cAAc,CAAC,QACnB,QAAO,yBAAyB,MAAM;AAAA,EACpC,IAAI,IAAI;AAAA,EACR,UAAU,IAAI;AAAA,EACd,QAAQ,IAAI;AAAA,EACZ,UAAU,IAAI;AAAA,KACV,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO;AAAA,EACnD,QAAQ,IAAI;AAAA,EACZ,gBAAgB,IAAI;AAAA,EACpB,WAAW,IAAI;AAAA,EACf,WAAW,IAAI;AAAA,KACX,IAAI,YAAY,OAAO,CAAC,IAAI,EAAE,SAAS,IAAI,QAAQ;AAAA,KACnD,IAAI,qBAAqB,OAAO,CAAC,IAAI,EAAE,gBAAgB,IAAI,iBAAiB;AAAA,KAC5E,IAAI,mBAAmB,OAAO,CAAC,IAAI,EAAE,cAAc,IAAI,eAAe;AAAA,KACtE,IAAI,cAAc,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,UAAU;AAAA,KACzD,IAAI,wBAAwB,OAAO,CAAC,IAAI,EAAE,mBAAmB,IAAI,oBAAoB;AAAA,KACrF,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,QAAQ,IAAI,OAAO;AAAA,KAChD,IAAI,UAAU,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,MAAM;AAAA,KAC7C,IAAI,eAAe,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,WAAW;AAAA,KAC3D,IAAI,iBAAiB,OAAO,CAAC,IAAI,EAAE,aAAa,IAAI,aAAa;AACvE,CAAC,GAEG,mBAAmB,CACvB,QAEA,QAAO,8BAA8B,iBAAiB;AAAA,EACpD,IAAI,IAAI;AAAA,EACR,MAAM,IAAI;AAAA,EACV,QAAQ,IAAI;AAAA,EACZ,gBAAgB,IAAI;AAAA,EACpB,kBAAkB,IAAI;AAAA,EACtB,SAAS,IAAI,YAAY;AAAA,EACzB,WAAW,IAAI;AAAA,EACf,WAAW,IAAI;AAAA,KACX,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,QAAQ,IAAI,OAAO;AAAA,KAChD,IAAI,UAAU,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,MAAM;AAAA,KAC7C,IAAI,iBAAiB,OAAO,CAAC,IAAI,EAAE,aAAa,IAAI,aAAa;AACvE,CAAC,GAEG,oBAAoB,OAAmC;AAAA,EAC3D,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AACb,IAEM,wBAAwB,CAC5B,QAEA,QAAO,mCAAmC,gBAAgB;AAAA,EACxD,MAAM,IAAI;AAAA,EACV,IAAI,IAAI;AAAA,KACJ,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,QAAQ,IAAI,OAAO;AACtD,CAAC,GAEG,eAAe,CAAC,QACpB,SAAO,kBAAkB,SAAO,MAAM,cAAc,CAAC,EAAE,KAAK,MAAM,IAAI,UAAU,CAAC,GAE7E,qBAAqB,CAAC,QAAsE;AAAA,EAChG,MAAM,QAAQ,aAAa,GAAG;AAAA,EAC9B,MAAM,OAAO,MAAM;AAAA,EACnB,OAAO,SAAS,YACZ,SAAO,KACL,IAAI,iBAAiB;AAAA,IACnB,WAAW;AAAA,IACX,SAAS,WAAW,IAAI;AAAA,EAC1B,CAAC,CACH,IACA,QAAO,gCAAgC,aAAa;AAAA,IAClD,IAAI,IAAI;AAAA,IACR,OAAO,IAAI;AAAA,IACX;AAAA,IACA,WAAW,IAAI;AAAA,IACf,WAAW,IAAI;AAAA,IACf,YAAY,IAAI;AAAA,OACZ,IAAI,oBAAoB,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,gBAAgB;AAAA,OACpE,IAAI,eAAe,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,WAAW;AAAA,EACjE,CAAC;AAAA,GAGD,SAAS,CAAC,WAAuC;AAAA,EACrD,OAAO,UAAU,UAAU,YAAY,EAAE,EAAE,SAAS,KAAK;AAAA,GAErD,YAAY,CAAC,UAA0B,YAAW,QAAQ,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,GAEtF,eAAe,CAAC,aAA+B;AAAA,EACnD,QAAQ;AAAA,SACD;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA;AAAA,GAIP,eAAe,CAAI,OAAyB,eAAuB;AAAA,EACvE,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,WAAqB,CAAC;AAAA,EAC5B,IAAI,QAAQ;AAAA,EACZ,SAAS,QAAQ,MAAM,SAAS,EAAG,SAAS,GAAG,SAAS,GAAG;AAAA,IACzD,MAAM,OAAO,MAAM;AAAA,IACnB,IAAI,SAAS,WAAW;AAAA,MACtB;AAAA,IACF;AAAA,IACA,MAAM,YAAY,QAAQ,OAAO,KAAK,UAAU,IAAI,CAAC,EAAE;AAAA,IACvD,IAAI,QAAQ,YAAY,YAAY;AAAA,MAClC;AAAA,IACF;AAAA,IACA,SAAS;AAAA,IACT,SAAS,QAAQ,IAAI;AAAA,EACvB;AAAA,EACA,OAAO,EAAE,OAAO,UAAU,WAAW,SAAS,SAAS,MAAM,OAAO;AAAA,GAGhE,qBAAqB,CAAC,SAA8C;AAAA,EACxE,MAAM,SAAS;AAAA,EACf,MAAM,SAAgC;AAAA,IACpC,eAAe,KAAK,EAAE,MAAM,UAAU,IAAI,KAAK,WAAW,OAAO,CAAC;AAAA,EACpE;AAAA,EACA,IAAI,KAAK,cAAc,WAAW;AAAA,IAChC,OAAO,KAAK,eAAe,KAAK,EAAE,MAAM,WAAW,IAAI,KAAK,WAAW,OAAO,CAAC,CAAC;AAAA,EAClF,EAAO,SAAI,KAAK,WAAW,YAAY;AAAA,IACrC,OAAO,KAAK,eAAe,KAAK,EAAE,MAAM,YAAY,IAAI,KAAK,WAAW,OAAO,CAAC,CAAC;AAAA,EACnF;AAAA,EACA,IAAI,KAAK,WAAW,cAAc;AAAA,IAChC,OAAO,KAAK,eAAe,KAAK,EAAE,MAAM,cAAc,IAAI,KAAK,WAAW,OAAO,CAAC,CAAC;AAAA,EACrF;AAAA,EACA,IACE,KAAK,gBAAgB,cACpB,KAAK,WAAW,eAAe,KAAK,WAAW,YAAY,KAAK,WAAW,cAC5E;AAAA,IACA,OAAO,KAAK,eAAe,KAAK,EAAE,MAAM,KAAK,QAAQ,IAAI,KAAK,aAAa,OAAO,CAAC,CAAC;AAAA,EACtF;AAAA,EACA,OAAO;AAAA,GAGH,cAAc,CAAC,IAAc,wBAAwB,SAAqB;AAAA,EAC9E,MAAM,uBAAuB,CAC3B,QACA,MACA,QACA,YAAuB,IAAI,MAClB;AAAA,IACT,GAAG,MACD;AAAA,2BAEF,EAAE,IAAI,QAAQ,MAAM,WAAW,MAAM;AAAA,IACrC,GAAG,MACD;AAAA;AAAA,SAGF,EAAE,IAAI,QAAQ,MAAM;AAAA;AAAA,EAGtB,MAAM,uBAAuB,CAAC,mBAAkC;AAAA,IAC9D,MAAM,YAAY,mBAAmB,YAAY,KAAK;AAAA,IACtD,MAAM,SAAS,mBAAmB,YAAY,wBAAwB,wBAAwB;AAAA,IAC9F,MAAM,aAAa;AAAA;AAAA,UAEb;AAAA;AAAA;AAAA,IAGN,MAAM,aAAa,mBAAmB,YAAY,CAAC,MAAM,IAAI,CAAC,gBAAgB,MAAM;AAAA,IACpF,GAAG,MAAM,0CAA0C,aAAa,EAAE,IAAI,GAAG,UAAU;AAAA,IACnF,GAAG,MAAM,kCAAkC,aAAa,EAAE,IAAI,GAAG,UAAU;AAAA,IAC3E,GAAG,MACD;AAAA;AAAA,uFAGF,EAAE,IAAI;AAAA;AAAA,EAGR,MAAM,0BAA0B,CAAC,wBAA4C;AAAA,IAC3E,MAAM,YAAY,wBAAwB,YAAY,KAAK;AAAA,IAC3D,MAAM,SACJ,wBAAwB,YAAY,wBAAwB,wBAAwB;AAAA,IACtF,MAAM,aAAa,wBAAwB,YAAY,CAAC,MAAM,IAAI,CAAC,qBAAqB,MAAM;AAAA,IAC9F,GAAG,MACD;AAAA;AAAA;AAAA,mDAG6C;AAAA;AAAA;AAAA,SAI/C,EAAE,IAAI,GAAG,UAAU;AAAA;AAAA,EAGrB,MAAM,YAAY,CAAC,WACjB,GAAG,MAAyB,kCAAkC,EAAE,IAAI,MAAM;AAAA,EAE5E,MAAM,iBAAiB,CAAC,gBACtB,GACG,MAAoC,8CAA8C,EAClF,IAAI,WAAW;AAAA,EAEpB,MAAM,UAAU,SAAO,GAAG,oBAAoB,EAAE,UAAU,CAAC,QAAgB;AAAA,IACzE,MAAM,MAAM,OAAO,SAAO,IAAI;AAAA,MAC5B,KAAK,MAAM,UAAU,MAAM;AAAA,MAC3B,OAAO,eAAe,oBAAoB;AAAA,IAC5C,CAAC;AAAA,IACD,IAAI,QAAQ,MAAM;AAAA,MAChB,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,gBAAgB;AAAA,MAC3B,CAAC,CACH;AAAA,IACF;AAAA,IACA,OAAO,OAAO,YAAY,GAAG;AAAA,GAC9B;AAAA,EAED,MAAM,YAAY,SAAO,GAAG,sBAAsB,EAAE,UAAU,CAAC,QAAgB;AAAA,IAC7E,MAAM,OAAO,OAAO,QAAQ,MAAM;AAAA,IAClC,OAAO,WAAW,aAAa,OAAO,SAAO,IAAI;AAAA,MAC/C,KAAK,MACH;AAAA,QACE,GACG,MAA2B,oCAAoC,EAC/D,IAAI,KAAK,cAAc;AAAA,QAC1B,GACG,MACC;AAAA;AAAA;AAAA,6BAIF,EACC,IAAI,MAAM;AAAA,MACf;AAAA,MACF,OAAO,eAAe,sBAAsB;AAAA,IAC9C,CAAC;AAAA,IACD,IAAI,cAAc,MAAM;AAAA,MACtB,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,yBAAyB,KAAK;AAAA,MACzC,CAAC,CACH;AAAA,IACF;AAAA,IACA,MAAM,eAAe,OAAO,cAAc,SAAS;AAAA,IACnD,MAAM,eAAe,UAAU,MAAM,IAAI;AAAA,IACzC,MAAM,iBAAiB,OAAO,SAAO,QAAQ,cAAc,qBAAqB;AAAA,IAChF,MAAM,SAAS,eAAe,WAAW,IAAI,mBAAmB,IAAI,IAAI;AAAA,IACxE,OAAO,UAAU,KAAK;AAAA,MACpB,QAAQ,KAAK;AAAA,MACb,UAAU,KAAK;AAAA,MACf,QAAQ,KAAK;AAAA,MACb,UAAU,KAAK;AAAA,SACX,KAAK,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM;AAAA,MACxD;AAAA,MACA,WAAW,KAAK;AAAA,MAChB,WAAW,KAAK;AAAA,MAChB;AAAA,MACA,WACE,UAAU,SAAS,OACnB,eAAe,WAAW,KAC1B,eAAe,IAAI,SAAS;AAAA,SAC1B,KAAK,mBAAmB,YAAY,CAAC,IAAI,EAAE,gBAAgB,KAAK,eAAe;AAAA,SAC/E,KAAK,iBAAiB,YAAY,CAAC,IAAI,EAAE,cAAc,KAAK,aAAa;AAAA,SACzE,KAAK,cAAc,YAAY,CAAC,IAAI,EAAE,WAAW,KAAK,UAAU;AAAA,SAChE,KAAK,cAAc,YAAY,CAAC,IAAI,EAAE,WAAW,KAAK,UAAU;AAAA,SAChE,KAAK,gBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,KAAK,YAAY;AAAA,SACtE,KAAK,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM;AAAA,IAC1D,CAAC;AAAA,GACF;AAAA,EAED,MAAM,cAAc,SAAO,GAAG,wBAAwB,EAAE,UAAU,GAAG;AAAA,IACnE,MAAM,OAAO,OAAO,SAAO,IAAI;AAAA,MAC7B,KAAK,MACH,GACG,MACC,mFACF,EACC,IAAI;AAAA,MACT,OAAO,eAAe,wBAAwB;AAAA,IAChD,CAAC;AAAA,IACD,OAAO,OAAO,SAAO,QAAQ,MAAM,aAAa;AAAA,GACjD;AAAA,EAED,MAAM,QAAQ,SAAO,GAAG,kBAAkB,EAAE,UAAU,GAAG;AAAA,IACvD,MAAM,OAAO,OAAO,SAAO,IAAI;AAAA,MAC7B,KAAK,MACH,GACG,MACC;AAAA;AAAA;AAAA;AAAA;AAAA,0FAMF,EACC,IAAI;AAAA,MACT,OAAO,eAAe,kBAAkB;AAAA,IAC1C,CAAC;AAAA,IACD,MAAM,cAAc,kBAAkB;AAAA,IACtC,MAAM,iBAAiB,IAAI;AAAA,IAC3B,MAAM,UAAU,IAAI;AAAA,IAQpB,IAAI,gBAAgB;AAAA,IACpB,WAAW,OAAO,MAAM;AAAA,MACtB,MAAM,SAAS,SAAO,kBAAkB,UAAU,EAAE,IAAI,MAAM;AAAA,MAC9D,MAAM,WAAW,SAAO,kBAAkB,QAAQ,EAAE,IAAI,QAAQ;AAAA,MAChE,MAAM,WAAW,SAAO,kBAAkB,QAAQ,EAAE,IAAI,SAAS;AAAA,MACjE,iBAAiB,IAAI;AAAA,MACrB,YAAY,WAAW,IAAI;AAAA,MAC3B,eAAe,IAAI,WAAW,eAAe,IAAI,QAAQ,KAAK,KAAK,IAAI,KAAK;AAAA,MAC5E,MAAM,UAAU,QAAQ,IAAI,QAAQ,KAAK;AAAA,QACvC,MAAM,IAAI;AAAA,QACV,QAAQ,kBAAkB;AAAA,QAC1B,WAAW,IAAI;AAAA,MACjB;AAAA,MACA,QAAQ,OAAO,WAAW,IAAI;AAAA,MAC9B,QAAQ,UAAU,IAAI,WAAW,QAAQ,UAAU,IAAI,QAAQ,KAAK,KAAK,IAAI,KAAK;AAAA,MAClF,QAAQ,IAAI,UAAU,OAAO;AAAA,IAC/B;AAAA,IACA,MAAM,gBAAgB,CAAC,cACrB,SAAS,SAAS,QAAQ,CAAC,aAAa;AAAA,MACtC,MAAM,QAAQ,UAAU,IAAI,QAAQ;AAAA,MACpC,OAAO,UAAU,YAAY,CAAC,IAAI,CAAC,EAAE,UAAU,MAAM,CAAC;AAAA,KACvD;AAAA,IACH,OAAO,aAAa,KAAK;AAAA,MACvB;AAAA,MACA,UAAU,iBAAiB,KAAK,WAAW;AAAA,MAC3C,YAAY,cAAc,cAAc;AAAA,MACxC,SAAS,CAAC,GAAG,QAAQ,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,YAC9C,YAAY,KAAK;AAAA,QACf;AAAA,QACA,YAAY,OAAO;AAAA,QACnB,OAAO,OAAO,OAAO,OAAO,MAAM,EAAE,OAAO,CAAC,KAAK,UAAU,MAAM,OAAO,CAAC;AAAA,QACzE,UAAU,iBAAiB,KAAK,OAAO,MAAM;AAAA,QAC7C,YAAY,cAAc,OAAO,SAAS;AAAA,MAC5C,CAAC,CACH;AAAA,IACF,CAAC;AAAA,GACF;AAAA,EAED,MAAM,eAAe,SAAO,GAAG,yBAAyB,EAAE,UAAU,CAAC,aAA0B;AAAA,IAC7F,MAAM,MAAM,OAAO,SAAO,IAAI;AAAA,MAC5B,KAAK,MAAM,eAAe,WAAW;AAAA,MACrC,OAAO,eAAe,yBAAyB;AAAA,IACjD,CAAC;AAAA,IACD,IAAI,QAAQ,MAAM;AAAA,MAChB,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,4BAA4B;AAAA,MACvC,CAAC,CACH;AAAA,IACF;AAAA,IACA,OAAO,OAAO,iBAAiB,GAAG;AAAA,GACnC;AAAA,EAED,MAAM,iBAAiB,SAAO,GAAG,2BAA2B,EAAE,UAAU,GAAG;AAAA,IACzE,MAAM,OAAO,OAAO,SAAO,IAAI;AAAA,MAC7B,KAAK,MACH,GACG,MACC,4EACF,EACC,IAAI;AAAA,MACT,OAAO,eAAe,2BAA2B;AAAA,IACnD,CAAC;AAAA,IACD,OAAO,OAAO,SAAO,QAAQ,MAAM,gBAAgB;AAAA,GACpD;AAAA,EAED,MAAM,0BAA0B,SAAO,GAAG,oCAAoC,EAAE,UAAU,CACxF,OACA;AAAA,IACA,MAAM,YAAY,IAAI;AAAA,IACtB,MAAM,aAAa,OAAO,SAAO,IAAI;AAAA,MACnC,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,UAAU,GACb,MACC,mFACF,EACC,IAAI;AAAA,QACP,IAAI,QAAQ,WAAW,GAAG;AAAA,UACxB,MAAM,IAAI,MAAM,kCAAkC;AAAA,QACpD;AAAA,QACA,IAAI,QAAQ,SAAS,KAAK;AAAA,UACxB,MAAM,IAAI,MAAM,8DAA8D;AAAA,QAChF;AAAA,QACA,6BAA6B,OAAO;AAAA,QACpC,WAAW,UAAU,SAAS;AAAA,UAC5B,MAAM,cAAc,GACjB,MACC;AAAA,4FAEF,EACC,IAAI,OAAO,EAAE;AAAA,UAChB,KAAK,aAAa,SAAS,KAAK,GAAG;AAAA,YACjC,MAAM,IAAI,MAAM,GAAG,OAAO,mDAAmD;AAAA,UAC/E;AAAA,QACF;AAAA,QACA,wBAAwB;AAAA,QACxB,OAAO,QAAQ,IAAI,CAAC,WAAW;AAAA,UAC7B,MAAM,YAAY,gBAAgB,KAAK;AAAA,YACrC,IAAI,gBAAgB;AAAA,YACpB,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,gBAAgB,SAAS,KAAK,OAAO,EAAE;AAAA,YACvC,kBAAkB,MAAM;AAAA,YACxB,SAAS,MAAM;AAAA,YACf,WAAW;AAAA,YACX,WAAW;AAAA,UACb,CAAC;AAAA,UACD,GAAG,MACD;AAAA;AAAA;AAAA,iDAIF,EAAE,IACA,UAAU,IACV,UAAU,MACV,UAAU,QACV,UAAU,gBACV,UAAU,kBACV,UAAU,UAAU,IAAI,GACxB,UAAU,WACV,UAAU,SACZ;AAAA,UACA,OAAO;AAAA,SACR;AAAA,OACF,EAAE;AAAA,MACL,OAAO,eAAe,oCAAoC;AAAA,IAC5D,CAAC;AAAA,IACD,OAAO;AAAA,GACR;AAAA,EAED,MAAM,uBAAuB,SAAO,GAAG,iCAAiC,EAAE,UAAU,CAClF,UACA;AAAA,IACA,MAAM,OAAO,OAAO,SAAO,IAAI;AAAA,MAC7B,KAAK,MACH,GACG,MACC;AAAA,8CAEF,EACC,IAAI,QAAQ;AAAA,MACjB,OAAO,eAAe,iCAAiC;AAAA,IACzD,CAAC;AAAA,IACD,OAAO,OAAO,SAAO,QAAQ,MAAM,gBAAgB;AAAA,GACpD;AAAA,EAED,MAAM,sBAAsB,SAAO,GAAG,gCAAgC,EAAE,UAAU,CAChF,aACA,UACA,QACA,QACA,OACA;AAAA,IACA,MAAM,UAAU,OAAO,aAAa,WAAW;AAAA,IAC/C,IAAI,CAAC,SAAS,SAAS,QAAQ,MAAM,GAAG;AAAA,MACtC,OAAO;AAAA,IACT;AAAA,IACA,MAAM,YAAY,IAAI;AAAA,IACtB,MAAM,YAAY,WAAW,eAAe,WAAW,WAAW,YAAY;AAAA,IAC9E,MAAM,eAAe,SAAS,IAAI,MAAM,GAAG,EAAE,KAAK,IAAI;AAAA,IACtD,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,UAAU,GACb,MACC;AAAA;AAAA,6CAE+B,eACjC,EACC,IACC,QACA,UAAU,QAAQ,UAAU,MAC5B,SAAS,QAAQ,SAAS,MAC1B,WACA,aAAa,QAAQ,eAAe,MACpC,aACA,GAAG,QACL;AAAA,QACF,IAAI,QAAQ,YAAY,KAAK,cAAc,WAAW;AAAA,UACpD,wBAAwB,WAAW;AAAA,QACrC;AAAA,OACD,EAAE;AAAA,MACL,OAAO,eAAe,gCAAgC;AAAA,IACxD,CAAC;AAAA,IACD,OAAO,OAAO,aAAa,WAAW;AAAA,GACvC;AAAA,EAED,MAAM,yBAAyB,SAAO,GAAG,mCAAmC,EAAE,UAAU,CACtF,aACA,UACA;AAAA,IACA,MAAM,YAAY,OAAO,aAAa,WAAW;AAAA,IACjD,IAAI,UAAU,mBAAmB,UAAU;AAAA,MACzC,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,UAAU,oCAAoC;AAAA,MACzD,CAAC,CACH;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EAED,MAAM,kBAAkB,SAAO,GAAG,4BAA4B,EAAE,UAAU,CACxE,aACA;AAAA,IACA,MAAM,UAAU,OAAO,aAAa,WAAW;AAAA,IAC/C,IAAI,QAAQ,WAAW,UAAU;AAAA,MAC/B,OAAO;AAAA,IACT;AAAA,IACA,MAAM,YAAY,IAAI;AAAA,IACtB,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GACG,MACC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAWF,EACC,IAAI,WAAW,aAAa,QAAQ,gBAAgB,QAAQ,gBAAgB,WAAW;AAAA,MAC5F,OAAO,eAAe,4BAA4B;AAAA,IACpD,CAAC;AAAA,IACD,OAAO,OAAO,aAAa,WAAW;AAAA,GACvC;AAAA,EAED,MAAM,kBAAkB,CAAC,aAA0B,aACjD,uBAAuB,aAAa,QAAQ,EAAE,KAC5C,SAAO,QAAQ,MAAM,oBAAoB,aAAa,CAAC,UAAU,GAAG,SAAS,CAAC,CAChF;AAAA,EAEF,MAAM,kBAAkB,CAAC,aAA0B,UAAoB,WACrE,uBAAuB,aAAa,QAAQ,EAAE,KAC5C,SAAO,QAAQ,MACb,oBAAoB,aAAa,CAAC,UAAU,YAAY,SAAS,GAAG,aAAa,MAAM,CACzF,CACF;AAAA,EAEF,MAAM,gBAAgB,CAAC,aAA0B,UAAoB,UACnE,uBAAuB,aAAa,QAAQ,EAAE,KAC5C,SAAO,QAAQ,MACb,oBACE,aACA,CAAC,UAAU,YAAY,SAAS,GAChC,UACA,WACA,KACF,CACF,CACF;AAAA,EAEF,MAAM,mBAAmB,CAAC,gBACxB,oBACE,aACA,CAAC,UAAU,YAAY,SAAS,GAChC,UACA,WACA,8BACF;AAAA,EAEF,MAAM,uBAAuB,SAAO,GAAG,iCAAiC,EAAE,UAAU,CAClF,UACA;AAAA,IACA,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GACG,MACC;AAAA,8EAEF,EACC,IAAI,IAAI,GAAG,QAAQ;AAAA,MACxB,OAAO,eAAe,iCAAiC;AAAA,IACzD,CAAC;AAAA,GACF;AAAA,EAED,MAAM,eAAe,SAAO,GAAG,yBAAyB,EAAE,UAAU,CAAC,UAAoB;AAAA,IACvF,MAAM,MAAM,OAAO,SAAO,IAAI;AAAA,MAC5B,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,SAAS,GACZ,MACC,6DACF,EACC,IAAI,QAAQ;AAAA,QACf,IAAI,WAAW,MAAM;AAAA,UACnB,MAAM,IAAI,MAAM,kBAAkB,UAAU;AAAA,QAC9C;AAAA,QACA,IAAI,OAAO,WAAW,WAAW;AAAA,UAC/B,MAAM,IAAI,MAAM,UAAU,qDAAqD;AAAA,QACjF;AAAA,QACA,MAAM,cAAc,GACjB,MACC;AAAA,iGAEF,EACC,IAAI,QAAQ;AAAA,QACf,KAAK,aAAa,SAAS,KAAK,GAAG;AAAA,UACjC,MAAM,IAAI,MAAM,UAAU,sCAAsC;AAAA,QAClE;AAAA,QACA,MAAM,YAAY,IAAI;AAAA,QACtB,GAAG,MACD;AAAA;AAAA,wFAGF,EAAE,IAAI,kDAAkD,WAAW,WAAW,QAAQ;AAAA,QACtF,wBAAwB;AAAA,QACxB,GAAG,MAAM,kDAAkD,EAAE,IAAI,WAAW,QAAQ;AAAA,QACpF,GAAG,MACD,0FACF,EAAE,IAAI,WAAW,QAAQ;AAAA,QACzB,OAAO;AAAA,OACR,EAAE;AAAA,MACL,OAAO,eAAe,yBAAyB;AAAA,IACjD,CAAC;AAAA,IACD,OAAO,OAAO,cAAc,GAAG;AAAA,GAChC;AAAA,EAED,MAAM,UAAU,SAAO,GAAG,oBAAoB,EAAE,UAAU,GAAG;AAAA,IAC3D,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,YAAY,IAAI;AAAA,QACtB,MAAM,cAAc,GACjB,MACC,8DACF,EACC,IAAI;AAAA,QACP,GAAG,MAAM,uCAAuC,EAAE,IAAI;AAAA,QACtD,GAAG,MACD,4FACF,EAAE,IAAI,SAAS;AAAA,QACf,GAAG,MACD,wGACF,EAAE,IAAI,SAAS;AAAA,QACf,WAAW,QAAQ,aAAa;AAAA,UAC9B,qBACE,OAAO,KAAK,KAAK,EAAE,GACnB,YACA,6CACA,SACF;AAAA,QACF;AAAA,QACA,GAAG,MAAM,wEAAwE,EAAE,IACjF,SACF;AAAA,QACA,GAAG,MACD,4FACF,EAAE,IAAI,SAAS;AAAA,QACf,qBAAqB;AAAA,QACrB,wBAAwB;AAAA,OACzB,EAAE;AAAA,MACL,OAAO,eAAe,oBAAoB;AAAA,IAC5C,CAAC;AAAA,GACF;AAAA,EAED,MAAM,eAAe,SAAO,GAAG,yBAAyB,EAAE,UAAU,CAAC,QAAgB;AAAA,IACnF,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GACG,MACC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAYF,EACC,IACC,OAAO,IACP,OAAO,MACP,OAAO,UACP,OAAO,UACP,OAAO,cACP,OAAO,QACP,KAAK,UAAU,OAAO,SAAS,GAC/B,KAAK,UAAU,OAAO,YAAY,GAClC,KAAK,UAAU,OAAO,UAAU,GAChC,OAAO,SACP,OAAO,YACP,OAAO,eAAe,MACtB,OAAO,SAAS,YAAY,OAAO,KAAK,UAAU,OAAO,IAAI,CAC/D;AAAA,MACJ,OAAO,eAAe,yBAAyB;AAAA,IACjD,CAAC;AAAA,IACD,OAAO;AAAA,GACR;AAAA,EAED,MAAM,qBAAqB,SAAO,GAAG,+BAA+B,EAAE,UAAU,CAC9E,UACA,QACA,MACA;AAAA,IACA,MAAM,YAAY,IAAI;AAAA,IACtB,MAAM,SAAS,OAAO,SAAO,IAAI;AAAA,MAC/B,KAAK,MACH,GACG,MACC,kGACF,EACC,IAAI,QAAQ,WAAW,SAAS,YAAY,OAAO,KAAK,UAAU,IAAI,GAAG,QAAQ;AAAA,MACtF,OAAO,eAAe,+BAA+B;AAAA,IACvD,CAAC;AAAA,IACD,IAAI,OAAO,YAAY,GAAG;AAAA,MACxB,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,kBAAkB;AAAA,MAC7B,CAAC,CACH;AAAA,IACF;AAAA,IACA,MAAM,MAAM,GAAG,MAA2B,oCAAoC,EAAE,IAAI,QAAQ;AAAA,IAC5F,IAAI,QAAQ,MAAM;AAAA,MAChB,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,UAAU;AAAA,MACrB,CAAC,CACH;AAAA,IACF;AAAA,IACA,OAAO,OAAO,cAAc,GAAG;AAAA,GAChC;AAAA,EAED,MAAM,oBAAmB,SAAO,GAAG,6BAA6B,EAAE,UAAU,CAC1E,OACA,gBACA,gBACA,mBACA;AAAA,IACA,MAAM,YAAY,IAAI;AAAA,IACtB,MAAM,WAAW,MAAM,YAAY,aAAa;AAAA,IAChD,MAAM,OAAO,KAAK,KAAK;AAAA,MACrB,IAAI,WAAW;AAAA,MACf;AAAA,MACA,QAAQ,MAAM;AAAA,MACd,UAAU,MAAM,aAAa,MAAM,UAAU,YAAY,UAAU;AAAA,SAC/D,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MAC1D,QAAQ;AAAA,MACR;AAAA,MACA,WAAW;AAAA,MACX,WAAW;AAAA,SACP,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,SAC5D,mBAAmB,YAAY,CAAC,IAAI,EAAE,eAAe;AAAA,SACrD,MAAM,iBAAiB,YAAY,CAAC,IAAI,EAAE,cAAc,MAAM,aAAa;AAAA,SAC3E,MAAM,cAAc,YAAY,CAAC,IAAI,EAAE,WAAW,MAAM,UAAU;AAAA,SAClE,sBAAsB,YAAY,CAAC,IAAI,EAAE,kBAAkB;AAAA,IACjE,CAAC;AAAA,IACD,MAAM,SACJ,MAAM,aAAa,YACf,OAAO,KAAK;AAAA,MACV,IAAI;AAAA,MACJ,OAAO,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,EAAE;AAAA,MAC9C,WAAW;AAAA,MACX,WAAW;AAAA,IACb,CAAC,IACD;AAAA,IACN,MAAM,UAAU,QAAQ,KAAK;AAAA,MAC3B,IAAI,cAAc;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,YAAY,mBAAmB,YAAY,SAAS;AAAA,MACpD,SAAS,MAAM;AAAA,MACf,WAAW;AAAA,MACX,QAAQ,KAAK;AAAA,SACT,mBAAmB,YAAY,CAAC,IAAI,EAAE,UAAU,eAAe;AAAA,IACrE,CAAC;AAAA,IACD,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,cAAc,GACjB,MACC;AAAA,6EAEF,EACC,IAAI,cAAc;AAAA,QACrB,KAAK,aAAa,SAAS,MAAM,KAAK;AAAA,UACpC,MAAM,IAAI,MAAM,UAAU,uDAAuD;AAAA,QACnF;AAAA,QACA,IAAI,WAAW,WAAW;AAAA,UACxB,GAAG,MACD,6EACF,EAAE,IAAI,OAAO,IAAI,OAAO,OAAO,OAAO,WAAW,OAAO,SAAS;AAAA,QACnE,EAAO,SACL,GACG,MAAyC,qCAAqC,EAC9E,IAAI,QAAQ,MAAM,MACrB;AAAA,UACA,MAAM,IAAI,MAAM,kBAAkB,UAAU;AAAA,QAC9C;AAAA,QACA,GAAG,MACD;AAAA;AAAA;AAAA;AAAA,gEAKF,EAAE,IACA,KAAK,IACL,KAAK,UACL,KAAK,QACL,KAAK,WAAW,MAChB,KAAK,UACL,KAAK,QACL,KAAK,kBAAkB,MACvB,KAAK,gBACL,KAAK,gBAAgB,MACrB,KAAK,aAAa,MAClB,KAAK,qBAAqB,MAC1B,KAAK,SAAS,MACd,KAAK,WACL,KAAK,SACP;AAAA,QACA,qBAAqB,KAAK,IAAI,UAAU,2BAA2B,SAAS;AAAA,QAC5E,GAAG,MACD;AAAA;AAAA;AAAA,yDAIF,EAAE,IACA,QAAQ,IACR,QAAQ,UACR,QAAQ,MACR,kBAAkB,QAClB,QAAQ,YACR,QAAQ,SACR,QAAQ,WACR,QAAQ,UAAU,MAClB,QAAQ,YAAY,IACtB;AAAA,QACA,GAAG,MAAM,gDAAgD,EAAE,IAAI,WAAW,QAAQ;AAAA,OACnF,EAAE;AAAA,MACL,OAAO,eAAe,6BAA6B;AAAA,IACrD,CAAC;AAAA,IACD,OAAO;AAAA,GACR;AAAA,EAED,MAAM,iBAAgB,SAAO,GAAG,0BAA0B,EAAE,UAAU,CAAC,UAAoB;AAAA,IACzF,MAAM,YAAY,OAAO,SAAO,IAAI;AAAA,MAClC,KAAK,MAAM,GAAG,MAA2B,oCAAoC,EAAE,IAAI,QAAQ;AAAA,MAC3F,OAAO,eAAe,iCAAiC;AAAA,IACzD,CAAC;AAAA,IACD,IAAI,cAAc,MAAM;AAAA,MACtB,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,kBAAkB;AAAA,MAC7B,CAAC,CACH;AAAA,IACF;AAAA,IACA,OAAO,aAAa,YAAY,OAAO,SAAO,IAAI;AAAA,MAChD,KAAK,MACH;AAAA,QACE,GACG,MACC;AAAA;AAAA;AAAA,yCAIF,EACC,IAAI,QAAQ;AAAA,QACf,GACG,MACC;AAAA;AAAA;AAAA,yCAIF,EACC,IAAI,QAAQ;AAAA,MACjB;AAAA,MACF,OAAO,eAAe,gCAAgC;AAAA,IACxD,CAAC;AAAA,IACD,OAAO,QAAQ,UAAU,SAAS,OAAO,SAAO,IAAI;AAAA,MAClD,cAAc,SAAS;AAAA,MACvB,SAAO,QAAQ,YAAY,MAAM,GAAG,GAAG,cAAc;AAAA,MACrD,SAAO,QAAQ,SAAS,MAAM,GAAG,GAAG,WAAW;AAAA,IACjD,CAAC;AAAA,IACD,MAAM,iBAAiB,aAAa,UAAU,MAAM,IAAI;AAAA,IACxD,MAAM,cAAc,aAAa,OAAO,MAAM,IAAI;AAAA,IAClD,OAAO,cAAc,KAAK;AAAA,MACxB;AAAA,MACA,UAAU,eAAe;AAAA,MACzB,OAAO,YAAY;AAAA,MACnB,WACE,YAAY,SAAS,MACrB,SAAS,SAAS,MAClB,eAAe,aACf,YAAY;AAAA,IAChB,CAAC;AAAA,GACF;AAAA,EAED,MAAM,kBAAkB,SAAO,GAAG,4BAA4B,EAAE,UAAU,CAAC,UAAoB;AAAA,IAC7F,MAAM,OAAO,OAAO,SAAO,IAAI;AAAA,MAC7B,KAAK,MACH,GACG,MACC;AAAA,oFAEF,EACC,IAAI,QAAQ;AAAA,MACjB,OAAO,eAAe,4BAA4B;AAAA,IACpD,CAAC;AAAA,IACD,OAAO,OAAO,SAAO,QAAQ,MAAM,WAAW;AAAA,GAC/C;AAAA,EAED,MAAM,aAAa,SAAO,GAAG,uBAAuB,EAAE,UAAU,CAC9D,QACA,UACA,QACA,OACA;AAAA,IACA,MAAM,UAAU,OAAO,QAAQ,MAAM;AAAA,IACrC,IAAI,CAAC,SAAS,SAAS,QAAQ,MAAM,GAAG;AAAA,MACtC,OAAO;AAAA,IACT;AAAA,IACA,MAAM,eAAe,SAAS,IAAI,MAAM,GAAG,EAAE,KAAK,IAAI;AAAA,IACtD,MAAM,YAAY,IAAI;AAAA,IACtB,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,SAAS,GACZ,MACC;AAAA;AAAA,2CAE6B,eAC/B,EACC,IACC,OAAO,UAAU,QAAQ,QACzB,OAAO,qBAAqB,QAAQ,qBAAqB,MACzD,OAAO,UAAU,QAAQ,UAAU,MACnC,OAAO,SAAS,QAAQ,SAAS,MACjC,OAAO,aAAa,QAAQ,aAAa,MACzC,OAAO,eAAe,QAAQ,eAAe,MAC7C,WACA,QACA,GAAG,QACL;AAAA,QACF,IAAI,OAAO,YAAY,KAAK,UAAU,WAAW;AAAA,UAC/C,qBAAqB,QAAQ,MAAM,MAAM,MAAM,QAAQ,SAAS;AAAA,QAClE;AAAA,QACA,IACE,OAAO,YAAY,KACnB,OAAO,WAAW,aAClB,CAAC,aAAa,UAAU,WAAW,EAAE,SAAS,OAAO,MAAM,GAC3D;AAAA,UACA,qBAAqB,MAAM;AAAA,QAC7B;AAAA,OACD,EAAE;AAAA,MACL,OAAO,eAAe,uBAAuB;AAAA,IAC/C,CAAC;AAAA,IACD,OAAO,OAAO,QAAQ,MAAM;AAAA,GAC7B;AAAA,EAED,MAAM,aAAa,SAAO,GAAG,uBAAuB,EAAE,UAAU,CAAC,QAAgB;AAAA,IAC/E,MAAM,UAAU,OAAO,QAAQ,MAAM;AAAA,IACrC,IAAI,QAAQ,WAAW,UAAU;AAAA,MAC/B,OAAO;AAAA,IACT;AAAA,IACA,MAAM,YAAY,IAAI;AAAA,IACtB,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,SAAS,GACZ,MACC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAYF,EACC,IACC,WACA,QACA,QAAQ,gBACR,QACA,SAAS,OAAO,GAChB,QAAQ,cACV;AAAA,QACF,IAAI,OAAO,YAAY,GAAG;AAAA,UACxB,qBACE,QACA,YACA,uDACA,SACF;AAAA,QACF;AAAA,OACD,EAAE;AAAA,MACL,OAAO,eAAe,uBAAuB;AAAA,IAC/C,CAAC;AAAA,IACD,OAAO,OAAO,QAAQ,MAAM;AAAA,GAC7B;AAAA,EAED,MAAM,gBAAgB,SAAO,GAAG,0BAA0B,EAAE,UAAU,CACpE,QACA,UACA;AAAA,IACA,MAAM,OAAO,OAAO,QAAQ,MAAM;AAAA,IAClC,IAAI,KAAK,mBAAmB,UAAU;AAAA,MACpC,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,QAAQ;AAAA,MACnB,CAAC,CACH;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EAED,MAAM,WAAW,SAAO,GAAG,qBAAqB,EAAE,UAAU,CAC1D,QACA,UACA,QACA,QACA,OACA,mBACA;AAAA,IACA,MAAM,UAAU,OAAO,cAAc,QAAQ,QAAQ;AAAA,IACrD,IAAI,CAAC,aAAa,UAAU,WAAW,EAAE,SAAS,QAAQ,MAAM,GAAG;AAAA,MACjE,OAAO;AAAA,IACT;AAAA,IACA,MAAM,YAAY,IAAI;AAAA,IACtB,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,UAAU,GACb,MACC;AAAA;AAAA,oEAGF,EACC,IACC,QACA,UAAU,MACV,SAAS,MACT,QAAQ,aAAa,aACjB,OACC,qBAAqB,QAAQ,qBAAqB,MACvD,WACA,WACA,MACF;AAAA,QACF,IAAI,QAAQ,YAAY,GAAG;AAAA,UACzB;AAAA,QACF;AAAA,QACA,qBACE,QACA,QACA,WAAW,cACP,qCACA,WAAW,WACT,0CACA,2CACN,SACF;AAAA,QACA,IAAI,QAAQ,aAAa,cAAc,sBAAsB,WAAW;AAAA,UACtE,GAAG,MACD;AAAA;AAAA;AAAA,kFAIF,EAAE,IAAI,QAAQ,UAAU,UAAU,QAAQ,UAAU,mBAAmB,SAAS;AAAA,QAClF;AAAA,QACA,MAAM,UAAU,UAAU;AAAA,QAC1B,IAAI,YAAY,WAAW;AAAA,UACzB,MAAM,OAAO,WAAW,cAAc,UAAU;AAAA,UAChD,GAAG,MACD;AAAA;AAAA;AAAA,sDAIF,EAAE,IACA,cAAc,GACd,QAAQ,UACR,MACA,WAAW,WAAW,UAAU,QAChC,UACA,WAAW,cAAc,aAAa,QAAQ,QAAQ,IAAI,UAC1D,SACA,WACA,QACA,QACF;AAAA,UACA,GAAG,MAAM,gDAAgD,EAAE,IACzD,WACA,QAAQ,QACV;AAAA,QACF;AAAA,QACA,qBAAqB,MAAM;AAAA,OAC5B,EAAE;AAAA,MACL,OAAO,eAAe,qBAAqB;AAAA,IAC7C,CAAC;AAAA,IACD,OAAO,OAAO,QAAQ,MAAM;AAAA,GAC7B;AAAA,EAED,MAAM,sBAAsB,SAAO,GAAG,gCAAgC,EAAE,UAAU,CAChF,QACA;AAAA,IACA,MAAM,UAAU,OAAO,QAAQ,MAAM;AAAA,IACrC,IAAI,CAAC,aAAa,UAAU,WAAW,EAAE,SAAS,QAAQ,MAAM,GAAG;AAAA,MACjE,OAAO;AAAA,IACT;AAAA,IACA,IAAI,QAAQ,aAAa,cAAc,QAAQ,WAAW,UAAU;AAAA,MAClE,OAAO,OAAO,IAAI,iBAAiB;AAAA,QACjC,WAAW;AAAA,QACX,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,IACA,IAAI,QAAQ,WAAW,cAAc;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA,MAAM,YAAY,IAAI;AAAA,IACtB,OAAO,QAAQ,WAAW,WACtB,OAAO,WACL,QACA,CAAC,QAAQ,GACT,EAAE,QAAQ,aAAa,aAAa,UAAU,GAC9C,EAAE,MAAM,aAAa,QAAQ,4CAA4C,CAC3E,IACA,OAAO,WACL,QACA,CAAC,YAAY,SAAS,GACtB;AAAA,MACE,QAAQ;AAAA,IACV,GACA,EAAE,MAAM,cAAc,QAAQ,qCAAqC,CACrE;AAAA,GACL;AAAA,EAED,MAAM,kBAAkB,SAAO,GAAG,4BAA4B,EAAE,UAAU,CAAC,UAAoB;AAAA,IAC7F,MAAM,YAAY,IAAI;AAAA,IACtB,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,cAAc,GACjB,MACC;AAAA,qDAEF,EACC,IAAI,QAAQ;AAAA,QACf,GAAG,MACD;AAAA,8EAEF,EAAE,IAAI,WAAW,QAAQ;AAAA,QACzB,WAAW,QAAQ,aAAa;AAAA,UAC9B,qBACE,OAAO,KAAK,KAAK,EAAE,GACnB,YACA,qDACA,SACF;AAAA,QACF;AAAA,OACD,EAAE;AAAA,MACL,OAAO,eAAe,4BAA4B;AAAA,IACpD,CAAC;AAAA,GACF;AAAA,EAED,MAAM,aAAa,SAAO,GAAG,uBAAuB,EAAE,UAAU,CAC9D,UACA,UACA,UACA;AAAA,IACA,MAAM,MAAM,OAAO,SAAO,IAAI;AAAA,MAC5B,KAAK,MACH,GACG,MACC;AAAA,kEAEF,EACC,IAAI,UAAU,UAAU,QAAQ;AAAA,MACrC,OAAO,eAAe,uBAAuB;AAAA,IAC/C,CAAC;AAAA,IACD,OAAO,KAAK;AAAA,GACb;AAAA,EAED,MAAM,gBAAgB,SAAO,GAAG,0BAA0B,EAAE,UAAU,CACpE,OACA;AAAA,IACA,MAAM,QAAQ,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC;AAAA,IACtC,IAAI,MAAM,WAAW,GAAG;AAAA,MACtB,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS;AAAA,MACX,CAAC,CACH;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,OAAO,MAAM;AAAA,IAC3B,MAAM,YAAY,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAK,EAAE,YAAY;AAAA,IACrE,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GACG,MACC;AAAA,kCAEF,EACC,IAAI,UAAU,KAAK,GAAG,MAAM,OAAO,KAAK,UAAU,KAAK,GAAG,WAAW,IAAI,CAAC;AAAA,MAC/E,OAAO,eAAe,0BAA0B;AAAA,IAClD,CAAC;AAAA,IACD,OAAO,kBAAkB,KAAK,EAAE,OAAO,WAAW,UAAU,KAAK,SAAS,EAAE,CAAC;AAAA,GAC9E;AAAA,EAED,MAAM,mBAAkB,SAAO,GAAG,4BAA4B,EAAE,UAAU,CAAC,OAAe;AAAA,IACxF,MAAM,YAAY,IAAI;AAAA,IACtB,MAAM,YAAY,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAK,EAAE,YAAY;AAAA,IAC/E,MAAM,UAAU,OAAO,SAAO,IAAI;AAAA,MAChC,KAAK,MACH,GAAG,YAAY,MAAM;AAAA,QACnB,MAAM,UAAU,GACb,MACC;AAAA,yEAEF,EACC,IAAI,UAAU,KAAK,GAAG,SAAS;AAAA,QAClC,IAAI,YAAY,MAAM;AAAA,UACpB,MAAM,IAAI,MAAM,yDAAyD;AAAA,QAC3E;AAAA,QACA,MAAM,QAAQ,SAAO,kBAAkB,SAAO,MAAM,cAAc,CAAC,EACjE,KAAK,MAAM,QAAQ,UAAU,CAC/B;AAAA,QACA,MAAM,WAAW,MAAM,SAAS,QAAQ,IAAI,aAAa,IAAI;AAAA,QAC7D,MAAM,WAAW,GACd,MAAM,+EAA+E,EACrF,IAAI,WAAW,QAAQ,UAAU;AAAA,QACpC,IAAI,SAAS,YAAY,GAAG;AAAA,UAC1B,MAAM,IAAI,MAAM,qCAAqC;AAAA,QACvD;AAAA,QACA,OAAO,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS;AAAA,UACvC,MAAM,eAAe,OAAO,SAAS;AAAA,UACrC,MAAM,MAAM;AAAA,YACV,IAAI,kBAAkB;AAAA,YACtB,YAAY,UAAU,YAAY;AAAA,YAClC,OAAO,QAAQ;AAAA,YACf,YAAY,KAAK,UAAU,CAAC,IAAI,CAAC;AAAA,YACjC,YAAY;AAAA,YACZ,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,iBAAiB,SAAS,WAAY,YAAY,OAAQ;AAAA,YAC1D,YAAY;AAAA,UACd;AAAA,UACA,GAAG,MACD;AAAA;AAAA;AAAA,gDAIF,EAAE,IACA,IAAI,IACJ,IAAI,YACJ,IAAI,OACJ,IAAI,YACJ,IAAI,YACJ,IAAI,YACJ,IAAI,cACJ,IAAI,eACN;AAAA,UACA,OAAO,EAAE,OAAO,cAAc,IAAI;AAAA,SACnC;AAAA,OACF,EAAE;AAAA,MACL,OAAO,eAAe,4BAA4B;AAAA,IACpD,CAAC;AAAA,IACD,MAAM,cAAc,OAAO,SAAO,QAAQ,SAAS,GAAG,OAAO,cAAc,UACzE,mBAAmB,GAAG,EAAE,KAAK,SAAO,IAAI,CAAC,aAAa,EAAE,OAAO,cAAc,QAAQ,EAAE,CAAC,CAC1F;AAAA,IACA,OAAO,cAAc,KAAK,EAAE,YAAY,CAAC;AAAA,GAC1C;AAAA,EAED,MAAM,sBAAsB,SAAO,GAAG,gCAAgC,EAAE,UAAU,CAChF,OACA,MACA;AAAA,IACA,MAAM,MAAM,OAAO,SAAO,IAAI;AAAA,MAC5B,KAAK,MACH,GACG,MACC;AAAA,0EAEF,EACC,IAAI,UAAU,KAAK,GAAG,IAAI,CAAC;AAAA,MAChC,OAAO,eAAe,gCAAgC;AAAA,IACxD,CAAC;AAAA,IACD,IAAI,QAAQ,QAAQ,CAAC,aAAa,GAAG,EAAE,SAAS,IAAI,GAAG;AAAA,MACrD;AAAA,IACF;AAAA,IACA,MAAM,aAAa,IAAI;AAAA,IACvB,OAAO,SAAO,IAAI;AAAA,MAChB,KAAK,MACH,GAAG,MAAM,wDAAwD,EAAE,IAAI,YAAY,IAAI,EAAE;AAAA,MAC3F,OAAO,eAAe,sCAAsC;AAAA,IAC9D,CAAC;AAAA,IACD,MAAM,UAAU,OAAO,mBAAmB,GAAG;AAAA,IAC7C,OAAO,YAAY,KAAK,KAAK,SAAS,WAAW,CAAC;AAAA,GACnD;AAAA,EAED,MAAM,mBAAmB,SAAO,GAAG,6BAA6B,EAAE,UAAU,GAAG;AAAA,IAC7E,MAAM,OAAO,OAAO,SAAO,IAAI;AAAA,MAC7B,KAAK,MACH,GACG,MACC,qEACF,EACC,IAAI;AAAA,MACT,OAAO,eAAe,6BAA6B;AAAA,IACrD,CAAC;AAAA,IACD,OAAO,OAAO,SAAO,QAAQ,MAAM,kBAAkB;AAAA,GACtD;AAAA,EAED,MAAM,oBAAoB,SAAO,GAAG,8BAA8B,EAAE,UAAU,CAC5E,WACA;AAAA,IACA,MAAM,YAAY,IAAI;AAAA,IACtB,MAAM,SAAS,OAAO,SAAO,IAAI;AAAA,MAC/B,KAAK,MACH,GACG,MAAM,6EAA6E,EACnF,IAAI,WAAW,SAAS;AAAA,MAC7B,OAAO,eAAe,8BAA8B;AAAA,IACtD,CAAC;AAAA,IACD,IAAI,OAAO,YAAY,GAAG;AAAA,MACxB,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,sCAAsC;AAAA,MACjD,CAAC,CACH;AAAA,IACF;AAAA,IACA,MAAM,MAAM,GACT,MAAgC,0CAA0C,EAC1E,IAAI,SAAS;AAAA,IAChB,IAAI,QAAQ,MAAM;AAAA,MAChB,OAAO,OAAO,SAAO,KACnB,IAAI,iBAAiB;AAAA,QACnB,WAAW;AAAA,QACX,SAAS,WAAW;AAAA,MACtB,CAAC,CACH;AAAA,IACF;AAAA,IACA,OAAO,OAAO,mBAAmB,GAAG;AAAA,GACrC;AAAA,EAED,OAAO,SAAQ,GAAG;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,CAAC,UAAU,QAAQ,SAAS,mBAAmB,UAAU,QAAQ,IAAI;AAAA,IAChF,mBAAmB,CAAC,aAAa,mBAAmB,UAAU,SAAS;AAAA,IACvE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB,CAAC,WACnB,WACE,QACA,CAAC,UAAU,GACX,EAAE,QAAQ,SAAS,GACnB,EAAE,MAAM,YAAY,QAAQ,gDAAgD,CAC9E;AAAA,IACF,YAAY,CAAC,QAAQ,aACnB,cAAc,QAAQ,QAAQ,EAAE,KAC9B,SAAO,QAAQ,MACb,WACE,QACA,CAAC,UAAU,GACX,EAAE,QAAQ,WAAW,WAAW,IAAI,EAAE,GACtC,EAAE,MAAM,WAAW,QAAQ,2DAA2D,CACxF,CACF,CACF;AAAA,IACF,YAAY,CAAC,QAAQ,UAAU,QAAQ,sBACrC,SAAS,QAAQ,UAAU,aAAa,QAAQ,WAAW,iBAAiB;AAAA,IAC9E,UAAU,CAAC,QAAQ,UAAU,UAAU,SAAS,QAAQ,UAAU,UAAU,WAAW,KAAK;AAAA,IAC5F,yBAAyB,CAAC,QAAQ,aAAa,SAAS,QAAQ,UAAU,WAAW;AAAA,IACrF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,mBAAmB,CAAC,gBAAgB,oBAAoB,aAAa,CAAC,UAAU,GAAG,QAAQ;AAAA,IAC3F;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,GAGG,UAAU,CAAC,OACf,SAAO,IAAI;AAAA,EACT,KAAK,MAAM;AAAA,IACT,GAAG,KAAK,2BAA2B;AAAA,IACnC,GAAG,KAAK,0BAA0B;AAAA,IAClC,GAAG,KAAK,4BAA4B;AAAA,IACpC,GAAG,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OA8DP;AAAA,IACD,MAAM,gBAAgB,GACnB,MAAqC,4BAA4B,EACjE,IAAI;AAAA,IACP,IAAI,CAAC,cAAc,KAAK,CAAC,WAAW,OAAO,SAAS,cAAc,GAAG;AAAA,MACnE,GAAG,KAAK,kDAAkD;AAAA,IAC5D;AAAA,IACA,IAAI,CAAC,cAAc,KAAK,CAAC,WAAW,OAAO,SAAS,WAAW,GAAG;AAAA,MAChE,GAAG,KAAK,+CAA+C;AAAA,IACzD;AAAA,IACA,MAAM,cAAc,GAAG,MAAqC,0BAA0B,EAAE,IAAI;AAAA,IAC5F,IAAI,CAAC,YAAY,KAAK,CAAC,WAAW,OAAO,SAAS,QAAQ,GAAG;AAAA,MAC3D,GAAG,KAAK,0CAA0C;AAAA,IACpD;AAAA;AAAA,EAEF,OAAO,eAAe,oBAAoB;AAC5C,CAAC,GAEU,SAAQ,CAAC,MAAc,wBAAwB,SAC1D,OAAM,OACJ,UACA,SAAO,eACL,SAAO,IAAI;AAAA,EACT,KAAK,MAAM,IAAI,SAAS,IAAI;AAAA,EAC5B,OAAO,eAAe,iBAAiB;AACzC,CAAC,EAAE,KAAK,SAAO,IAAI,OAAO,CAAC,GAC3B,CAAC,OAAO,SAAO,KAAK,MAAM,GAAG,MAAM,CAAC,CACtC,EAAE,KAAK,SAAO,IAAI,CAAC,OAAO,YAAY,IAAI,qBAAqB,CAAC,CAAC,CACnE,GAEW,oBAAoB,CAAC,OAChC,OAAM,OAAO,UAAS,QAAQ,EAAE,EAAE,KAAK,SAAO,IAAI,MAAM,YAAY,EAAE,CAAC,CAAC,CAAC;AAAA;AAAA,EA5yD3E;AAAA,EA0CA;AAAA,EAowDA;AAAA,EAlwDa,mBAAN,MAAM,yBAAyB,SAAO,iBAAmC,EAC9E,+BACA,EAAE,WAAW,SAAO,QAAQ,SAAS,SAAO,OAAO,CACrD,EAAE;AAAA,EAAC;AAAA,EAkNU,WAAN,MAAM,iBAAgB,SAAQ,QAA4B,EAAE,oBAAoB,EAAE;AAAA,EAAC;AAAA;;;;;;;;;AC3O1F,mBAAS,oCAAwB;AACjC,uBAAS;AACT,mBAAS,kBAAQ;AACjB;AAEA,qBAAS;AACT;AAAA,IAOM,cAKO,qBAAqB,CAChC,eACA,cAAiC,QAAQ,KACzC,MAAM,QAAQ,QACS;AAAA,EACvB,MAAM,YAAY,OAAO,YAAY,UAAU;AAAA,EAC/C,MAAM,YAAY,OAAO,YAAY,UAAU;AAAA,EAC/C,IAAI,cAAc,OAAO,CAAC,OAAO,UAAU,SAAS,KAAK,YAAY,GAAG;AAAA,IACtE,OAAO,EAAE,MAAM,cAAc,MAAM,MAAM,cAAc,KAAK;AAAA,EAC9D;AAAA,EAEA,MAAM,kBAAkB,YAAY,gBAAgB,MAAM,GAAG,KAAK,CAAC;AAAA,EACnE,MAAM,aAAa,gBAAgB,QAAQ,cAAc;AAAA,EACzD,IAAI,cAAc,KAAK,aAAa,WAAW;AAAA,IAC7C,OAAO,EAAE,IAAI,IAAI,WAAW;AAAA,EAC9B;AAAA,EACA,IAAI,cAAc,GAAG;AAAA,IACnB,OAAO,EAAE,IAAI,EAAE;AAAA,EACjB;AAAA,EACA,MAAM,IAAI,MAAM,0EAA0E;AAAA,GAGtF,OAAO,CAAC,OAAgB,SAAS,QACrC,SAAS,KAAK,OAAO;AAAA,EACnB;AAAA,EACA,SAAS;AAAA,IACP,iBAAiB;AAAA,IACjB,0BAA0B;AAAA,EAC5B;AACF,CAAC,GAEG,cAAc,CAAC,SAA0B,UAA+C;AAAA,EAC5F,IAAI,QAAQ,WAAW,SAAS,QAAQ,WAAW,QAAQ;AAAA,IACzD,OAAO,QAAQ,QAAQ,SAAS;AAAA,EAClC;AAAA,EACA,OAAO,IAAI,QAAQ,CAAC,UAAS,WAAW;AAAA,IACtC,MAAM,SAAwB,CAAC;AAAA,IAC/B,IAAI,OAAO;AAAA,IACX,MAAM,UAAU,MAAY;AAAA,MAC1B,QAAQ,IAAI,QAAQ,MAAM;AAAA,MAC1B,QAAQ,IAAI,OAAO,KAAK;AAAA,MACxB,QAAQ,IAAI,SAAS,OAAO;AAAA;AAAA,IAE9B,MAAM,SAAS,CAAC,UAAwB;AAAA,MACtC,QAAQ,MAAM;AAAA,MACd,IAAI,QAAQ,OAAO;AAAA,QACjB,OAAO,KAAK,KAAK;AAAA,QACjB;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,MACR,OAAO,IAAI,MAAM,+BAA+B,CAAC;AAAA;AAAA,IAEnD,MAAM,QAAQ,MAAY;AAAA,MACxB,QAAQ;AAAA,MACR,SAAQ,OAAO,OAAO,QAAQ,IAAI,CAAC;AAAA;AAAA,IAErC,MAAM,UAAU,CAAC,UAAuB;AAAA,MACtC,QAAQ;AAAA,MACR,OAAO,KAAK;AAAA;AAAA,IAEd,QAAQ,GAAG,QAAQ,MAAM;AAAA,IACzB,QAAQ,KAAK,OAAO,KAAK;AAAA,IACzB,QAAQ,KAAK,SAAS,OAAO;AAAA,GAC9B;AAAA,GAGG,aAAa,OAAO,YAA+C;AAAA,EACvE,MAAM,UAAU,IAAI;AAAA,EACpB,SAAS,QAAQ,EAAG,QAAQ,QAAQ,WAAW,QAAQ,SAAS,GAAG;AAAA,IACjE,MAAM,OAAO,QAAQ,WAAW;AAAA,IAChC,MAAM,QAAQ,QAAQ,WAAW,QAAQ;AAAA,IACzC,IAAI,SAAS,aAAa,UAAU,WAAW;AAAA,MAC7C,QAAQ,OAAO,MAAM,KAAK;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,MAAM,UAAU,MAAM,YAAY,SAAS,MAAM,IAAI;AAAA,EACrD,OAAO,IAAI,QAAQ,IAAI,IAAI,QAAQ,OAAO,KAAK,qBAAqB,GAAG;AAAA,IACrE,QAAQ,QAAQ,UAAU;AAAA,IAC1B;AAAA,OACI,YAAY,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,WAAW,OAAO,EAAE;AAAA,EACnE,CAAC;AAAA,GAGG,eAAe,OAAO,QAAwB,aAAsC;AAAA,EACxF,OAAO,aAAa,SAAS;AAAA,EAC7B,SAAS,QAAQ,QAAQ,CAAC,OAAO,SAAS,OAAO,UAAU,MAAM,KAAK,CAAC;AAAA,EACvE,OAAO,IAAI,OAAO,KAAK,MAAM,SAAS,YAAY,CAAC,CAAC;AAAA,GAGhD,aAAa,CAAC,YAA6B;AAAA,EAC/C,IAAI,OAAO,SAAS,OAAO,GAAG;AAAA,IAC5B,OAAO,QAAQ,SAAS,MAAM;AAAA,EAChC;AAAA,EACA,IAAI,mBAAmB,aAAa;AAAA,IAClC,OAAO,OAAO,KAAK,OAAO,EAAE,SAAS,MAAM;AAAA,EAC7C;AAAA,EACA,IAAI,MAAM,QAAQ,OAAO,GAAG;AAAA,IAC1B,OAAO,OAAO,OAAO,OAAO,EAAE,SAAS,MAAM;AAAA,EAC/C;AAAA,EACA,OAAO,OAAO,KAAK,OAAO,EAAE,SAAS,MAAM;AAAA,GAGvC,gBAAgB,CAAC,QAA+B,QAAgB,YAA0B;AAAA,EAC9F,OAAO,MAAM,YAAY,UAAU;AAAA;AAAA;AAAA;AAAA,CAA2D;AAAA,EAC9F,IAAI,aAAa,UAAU,OAAO,OAAO,YAAY,YAAY;AAAA,IAC/D,OAAO,QAAQ;AAAA,EACjB;AAAA,GAGI,OAAO,CACX,SACA,YAEA,SAAO,WAAW;AAAA,EAChB,KAAK,MAAM,QAAQ,KAAK;AAAA,EACxB,OAAO,MAAM,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,+BAA+B,CAAC;AACxF,CAAC,EAAE,KACD,SAAO,QAAQ,OAAM,GACrB,SAAO,SAAS,CAAC,UACf,iBAAiB,eACb,QACA,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,OAAO,KAAK,EAAE,MAAM,GAAG,IAAK,EAAE,CAAC,CAC9E,CACF,GAEI,SAAS,CACb,QACA,UAEA,SAAO,oBAAoB,MAAM,EAAE,KAAK,EAAE,KACxC,SAAO,SACL,MAAM,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,uBAAuB,QAAQ,CAAC,CACjF,CACF,GAEI,cAAc,CAClB,QACA,OACA,mBACW;AAAA,EACX,MAAM,SAAS,GAAG,MAAM,UAAU,MAAM,WAAW,KAAK,YAAY;AAAA,EACpE,MAAM,aAAa,0CAA0C,KAAK,MAAM;AAAA,EACxE,MAAM,eACJ,0EAA0E,KAAK,MAAM;AAAA,EACvF,QACG,OAAO,WAAW,YAAY,IAAI,QAClC,MAAM,cAAc,aACrB,OAAO,WAAW,KAChB,CAAC,cACC,MAAM,cAAc,UAAU,QAAQ,MAAM,WAAW,WAAW,GAAG,UAAU,OAAO,CAC1F,IACI,KACA,MACH,cAAc,OAAO,aAAa,KAAK,CAAC,eAAe,WAAW,OAAO,OAAO,IAAI,KAAK,MACzF,gBAAgB,OAAO,aAAa,KAAK,CAAC,eAAe,WAAW,OAAO,iBAAiB,IACzF,KACA,MACH,mBAAmB,OAAO,KAAK,KAAK;AAAA,GAI5B,eAAe,CAC1B,OACA,mBAEA,SAAO,IAAI,UAAU,GAAG;AAAA,EACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,EAChC,MAAM,UAAU,OAAO,MACpB,YAAY,EACZ,KAAK,SAAO,SAAS,CAAC,UAAU,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,MAAM,QAAQ,CAAC,CAAC,CAAC;AAAA,EAC7F,MAAM,WAAW,MAAM,aAAa,MAAM,UAAU,YAAY,UAAU;AAAA,EAC1E,IAAI,MAAM,mBAAmB,WAAW;AAAA,IACtC,MAAM,SAAS,QAAQ,KAAK,CAAC,WAAW,OAAO,OAAO,MAAM,cAAc;AAAA,IAC1E,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,OAAO,IAAI,aAAa;AAAA,QAC7B,QAAQ;AAAA,QACR,SAAS,yBAAyB,MAAM;AAAA,MAC1C,CAAC;AAAA,IACH;AAAA,IACA,IAAI,CAAC,OAAO,UAAU,SAAS,QAAQ,GAAG;AAAA,MACxC,OAAO,OAAO,IAAI,aAAa;AAAA,QAC7B,QAAQ;AAAA,QACR,SAAS,GAAG,OAAO,+BAA+B;AAAA,MACpD,CAAC;AAAA,IACH;AAAA,IACA,IAAI,MAAM,UAAU,aAAa,CAAC,OAAO,MAAM,KAAK,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,GAAG;AAAA,MACpF,OAAO,OAAO,IAAI,aAAa;AAAA,QAC7B,QAAQ;AAAA,QACR,SAAS,GAAG,OAAO,+BAA+B,MAAM;AAAA,MAC1D,CAAC;AAAA,IACH;AAAA,IACA,OAAO,OAAO;AAAA,EAChB;AAAA,EACA,MAAM,aAAa,QAAQ,OACzB,CAAC,WACC,OAAO,UAAU,SAAS,QAAQ,MACjC,MAAM,UAAU,aAAa,OAAO,MAAM,KAAK,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,EACnF;AAAA,EACA,IAAI,MAAM,UAAU,aAAa,WAAW,SAAS,GAAG;AAAA,IACtD,OAAO,OAAO,IAAI,aAAa;AAAA,MAC7B,QAAQ;AAAA,MACR,SAAS,OAAO,MAAM;AAAA,IACxB,CAAC;AAAA,EACH;AAAA,EACA,MAAM,WAAW,WAAW,KAC1B,CAAC,MAAM,UACL,YAAY,OAAO,OAAO,cAAc,IAAI,YAAY,MAAM,OAAO,cAAc,CACvF,EAAE;AAAA,EACF,IAAI,aAAa,WAAW;AAAA,IAC1B,OAAO,OAAO,IAAI,aAAa;AAAA,MAC7B,QAAQ;AAAA,MACR,SACE,MAAM,UAAU,YACZ,mCAAmC,sBACnC,mCAAmC,MAAM;AAAA,IACjD,CAAC;AAAA,EACH;AAAA,EACA,OAAO,SAAS;AAAA,CACjB,GAIU,WAAW,YAA2B;AAAA,EACjD,MAAM,gBAAgB,MAAM,SAAO,WAAW,4BAA4B;AAAA,EAC1E,QAAQ,MAAM,EAAK;AAAA,EACnB,MAAM,UAAU,eAAe,KAC7B,cAAW,MAAM,cAAc,cAAc,cAAc,gBAAgB,CAC7E;AAAA,EACA,MAAM,OAAM,CAAO,WACjB,QAAQ,WAAW,MAAM;AAAA,EAC3B,MAAM,KACJ,SAAO,IAAI,UAAU,GAAG;AAAA,IACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,IAChC,OAAO,MAAM,QAAQ;AAAA,GACtB,CACH;AAAA,EACA,IACE,UAAS,MAAM,WACd,MAAM,QAAO,cAAc,YAAY,EACrC,KAAK,MAAM,IAAI,EACf,MAAM,MAAM,KAAK,GACpB;AAAA,IACA,MAAM,OAAM,cAAc,cAAc,GAAK;AAAA,EAC/C;AAAA,EAEA,MAAM,MAAM,IAAI;AAAA,EAChB,IAAI,cAAc;AAAA,EAElB,MAAM,cAAc,CAAC,UAA0B,YAAW,QAAQ,EAAE,OAAO,KAAK,EAAE,OAAO;AAAA,EACzF,MAAM,cAAa,CAAC,UAClB,gBAAgB,YAAY,KAAK,GAAG,YAAY,cAAc,KAAK,CAAC;AAAA,EAEtE,MAAM,eAAe,OACnB,OACA,SACmC;AAAA,IACnC,IAAI,YAAW,KAAK,GAAG;AAAA,MACrB,OAAO;AAAA,IACT;AAAA,IACA,OAAO,KACL,SAAO,IAAI,UAAU,GAAG;AAAA,MACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,MAChC,OAAO,OAAO,MAAM,oBAAoB,OAAO,IAAI;AAAA,KACpD,CACH,EAAE,MAAM,MAAG;AAAA,MAAG;AAAA,KAAS;AAAA;AAAA,EAGzB,MAAM,eAAe,OAAO,YAAqD;AAAA,IAC/E,MAAM,gBAAgB,QAAQ,QAAQ,IAAI,eAAe;AAAA,IACzD,IAAI,eAAe,WAAW,SAAS,MAAM,MAAM;AAAA,MACjD;AAAA,IACF;AAAA,IACA,OAAO,aAAa,cAAc,MAAM,UAAU,MAAM,GAAG,QAAQ;AAAA;AAAA,EAGrE,MAAM,WAAW,OAAO,SAA8B;AAAA,IACpD,MAAM,WAAW,MAAM,KACrB,SAAO,IAAI,UAAU,GAAG;AAAA,MACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,MAChC,OAAO,OAAO,MAAM,WAAW,KAAK,EAAE;AAAA,KACvC,CACH;AAAA,IACA,IAAI,SAAS,WAAW,YAAY;AAAA,MAClC,OAAO;AAAA,IACT;AAAA,IACA,IACE,IAAI,aACF,SAAS,gBACT,YAAY,KAAK,EAAE,MAAM,gBAAgB,MAAM,SAAS,CAAC,CAC3D,GACA;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IACA,OAAO,KACL,SAAO,IAAI,UAAU,GAAG;AAAA,MACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,MAChC,OAAO,OAAO,MAAM,mBAAmB,KAAK,EAAE;AAAA,KAC/C,CACH;AAAA;AAAA,EAGF,MAAM,oBAAoB,OAAO,cAAyD;AAAA,IACxF,MAAM,WAAW,MAAM,KACrB,SAAO,IAAI,UAAU,GAAG;AAAA,MACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,MAChC,OAAO,OAAO,MAAM,gBAAgB,UAAU,EAAE;AAAA,KACjD,CACH;AAAA,IACA,IAAI,SAAS,WAAW,YAAY;AAAA,MAClC,OAAO;AAAA,IACT;AAAA,IACA,IACE,IAAI,aACF,SAAS,gBACT,YAAY,KAAK,EAAE,MAAM,qBAAqB,WAAW,SAAS,CAAC,CACrE,GACA;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IACA,OAAO,KACL,SAAO,IAAI,UAAU,GAAG;AAAA,MACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,MAChC,OAAO,OAAO,MAAM,kBAAkB,UAAU,EAAE;AAAA,KACnD,CACH;AAAA;AAAA,EAGF,MAAM,4BAA4B,OAAO,aAA0C;AAAA,IACjF,MAAM,aAAa,MAAM,KACvB,SAAO,IAAI,UAAU,GAAG;AAAA,MACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,MAChC,OAAO,OAAO,MAAM,qBAAqB,QAAQ;AAAA,KAClD,CACH;AAAA,IACA,WAAW,aAAa,YAAY;AAAA,MAClC,MAAM,kBAAkB,SAAS;AAAA,IACnC;AAAA;AAAA,EAGF,MAAM,uBAAuB,OAAO,aAA0C;AAAA,IAC5E,MAAM,QAAQ,MAAM,KAClB,SAAO,IAAI,UAAU,GAAG;AAAA,MACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,MAChC,OAAO,OAAO,MAAM,gBAAgB,QAAQ;AAAA,KAC7C,CACH;AAAA,IACA,WAAW,QAAQ,OAAO;AAAA,MACxB,IAAI,KAAK,WAAW,cAAc;AAAA,QAChC,IAAI,aAAa,UAAU,YAAY,KAAK,EAAE,MAAM,cAAc,QAAQ,KAAK,GAAG,CAAC,CAAC;AAAA,MACtF,EAAO;AAAA,QACL,MAAM,SAAS,IAAI;AAAA;AAAA,IAEvB;AAAA;AAAA,EAGF,MAAM,kBAAkB,OAAO,aAA0C;AAAA,IACvE,MAAM,0BAA0B,QAAQ;AAAA,IACxC,MAAM,qBAAqB,QAAQ;AAAA;AAAA,EAGrC,MAAM,YAAY,CAAC,QAA0B,MAAc,YAA0B;AAAA,IACnF,OAAO,KACL,KAAK,UACH,YAAY,KAAK;AAAA,MACf,MAAM;AAAA,MACN,MAAM,KAAK,MAAM,GAAG,EAAE;AAAA,MACtB,SAAS,QAAQ,MAAM,GAAG,IAAK;AAAA,IACjC,CAAC,CACH,CACF;AAAA;AAAA,EAGF,MAAM,oBAAoB,OAAO,QAA0B,UAAkC;AAAA,IAC3F,MAAM,QAAQ,MAAM,SAAO,WACzB,SAAO,IAAI;AAAA,MACT,KAAK,MAAM,KAAK,MAAM,WAAW,KAAK,CAAC;AAAA,MACvC,OAAO,MAAM,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,sBAAsB,CAAC;AAAA,IAC/E,CAAC,EAAE,KAAK,SAAO,QAAQ,iBAAiB,CAAC,CAC3C,EAAE,MAAM,CAAC,UAAmB;AAAA,MAC1B,UAAU,QAAQ,iBAAiB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,MACzF;AAAA,KACD;AAAA,IACD,IAAI,UAAU,WAAW;AAAA,MACvB;AAAA,IACF;AAAA,IAEA,IAAI,CAAC,IAAI,aAAa,MAAM,GAAG;AAAA,MAC7B,IAAI,MAAM,SAAS,gBAAgB;AAAA,QACjC,OAAO,MAAM,MAAM,yBAAyB;AAAA,QAC5C;AAAA,MACF;AAAA,MACA,MAAM,YAAY,MAAM,aAAa,MAAM,OAAO,QAAQ;AAAA,MAC1D,IAAI,cAAc,WAAW;AAAA,QAC3B,OAAO,MAAM,MAAM,uBAAuB;AAAA,QAC1C;AAAA,MACF;AAAA,MACA,IAAI,IAAI,mBAAmB,KAAK,IAAI;AAAA,QAClC,OAAO,MAAM,MAAM,yCAAyC;AAAA,QAC5D;AAAA,MACF;AAAA,MACA,MAAM,WAAW,IAAI,OAAO,QAAQ;AAAA,WAC9B,cAAc,UAAU,CAAC,IAAI,EAAE,WAAW,UAAU,GAAG;AAAA,WACvD,cAAc,WAAW,UAAU,aAAa,YAChD,CAAC,IACD,EAAE,eAAe,UAAU,SAAS;AAAA,WACpC,cAAc,UAAU,CAAC,IAAI,EAAE,WAAW,UAAU,UAAU;AAAA,MACpE,CAAC;AAAA,MACD,IAAI,CAAC,UAAU;AAAA,QACb,OAAO,MAAM,MAAM,qCAAqC;AAAA,QACxD;AAAA,MACF;AAAA,MACA,OAAO,KAAK,gBAAgB,WAAW,MAAM;AAAA,QAC3C,IAAI,IAAI,SAAS,MAAM,MAAM,WAAW;AAAA,UACtC,OAAO,MAAM,MAAM,6BAA6B;AAAA,QAClD;AAAA,SACC,IAAK;AAAA,MACR,OAAO,KACL,KAAK,UACH,YAAY,KAAK,EAAE,MAAM,aAAa,eAAe,SAAS,aAAa,IAAI,EAAE,CAAC,CACpF,CACF;AAAA,MACA;AAAA,IACF;AAAA,IAEA,IAAI,MAAM,SAAS,gBAAgB;AAAA,MACjC;AAAA,IACF;AAAA,IACA,IAAI,MAAM,SAAS,eAAe;AAAA,MAChC,MAAM,QAAQ,IAAI,cAAc,MAAM;AAAA,MACtC,IAAI,UAAU,aAAa,UAAU,MAAM,OAAO,IAAI;AAAA,QACpD,OAAO,MAAM,MAAM,4CAA4C;AAAA,QAC/D;AAAA,MACF;AAAA,MACA,MAAM,SAAS,OAAO,KAAK;AAAA,WACtB,MAAM;AAAA,QACT,QAAQ;AAAA,QACR,aAAa,IAAI;AAAA,QACjB,YAAY,IAAI;AAAA,MAClB,CAAC;AAAA,MACD,IAAI,CAAC,IAAI,eAAe,OAAO,IAAI,MAAM,GAAG;AAAA,QAC1C,OAAO,MAAM,MAAM,6BAA6B;AAAA,QAChD;AAAA,MACF;AAAA,MACA,MAAM,KACJ,SAAO,IAAI,UAAU,GAAG;AAAA,QACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,QAChC,OAAO,MAAM,aAAa,MAAM;AAAA,OACjC,CACH;AAAA,MAEA,MAAM,qBAAqB,OAAO,EAAE;AAAA,MACpC,MAAM,0BAA0B,OAAO,EAAE;AAAA,MACzC;AAAA,IACF;AAAA,IAEA,MAAM,WAAW,IAAI,SAAS,MAAM;AAAA,IACpC,IAAI,aAAa,WAAW;AAAA,MAC1B,UAAU,QAAQ,yBAAyB,uCAAuC;AAAA,MAClF;AAAA,IACF;AAAA,IAEA,MAAM,SAAS,CAAC,WAAyB;AAAA,MACvC,OAAO,KAAK,KAAK,UAAU,YAAY,KAAK,EAAE,MAAM,eAAe,OAAO,CAAC,CAAC,CAAC;AAAA;AAAA,IAE/E,MAAM,kBAAkB,CAAC,gBAAmC;AAAA,MAC1D,OAAO,KAAK,KAAK,UAAU,YAAY,KAAK,EAAE,MAAM,oBAAoB,YAAY,CAAC,CAAC,CAAC;AAAA;AAAA,IAEzF,MAAM,YAAY,MAAM,KACtB,SAAO,IAAI,UAAU,GAAG;AAAA,MACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,MAChC,QAAQ,MAAM;AAAA,aACP;AAAA,UACH,IAAI,MAAM,aAAa,UAAU;AAAA,YAC/B,OAAO,MAAM,UACX,UACA,MAAM,WAAW,SAAS,SAAS,UACnC,MAAM,IACR;AAAA,UACF;AAAA,UACA;AAAA,aACG;AAAA,UACH,OAAO,MAAM,WAAW,MAAM,QAAQ,QAAQ;AAAA,UAC9C;AAAA,aACG;AAAA,UACH,OAAO,MAAM,WAAW,MAAM,QAAQ,UAAU,MAAM,QAAQ,MAAM,iBAAiB;AAAA,UACrF;AAAA,aACG;AAAA,UACH,OAAO,MAAM,SAAS,MAAM,QAAQ,UAAU,MAAM,KAAK;AAAA,UACzD;AAAA,aACG;AAAA,UACH,OAAO,MAAM,wBAAwB,MAAM,QAAQ,QAAQ;AAAA,UAC3D;AAAA,aACG;AAAA,UACH,OAAO,MAAM,gBAAgB,MAAM,aAAa,QAAQ;AAAA,UACxD;AAAA,aACG;AAAA,UACH,OAAO,MAAM,gBAAgB,MAAM,aAAa,UAAU,MAAM,MAAM;AAAA,UACtE;AAAA,aACG;AAAA,UACH,OAAO,MAAM,cAAc,MAAM,aAAa,UAAU,MAAM,KAAK;AAAA,UACnE;AAAA,aACG;AAAA,aACA;AAAA,aACA;AAAA,aACA;AAAA,aACA;AAAA,aACA;AAAA,aACA;AAAA,UACH;AAAA;AAAA,KAEL,CACH,EACG,KAAK,MAAM,IAAI,EACf,MAAM,CAAC,UAAmB;AAAA,MACzB,UAAU,QAAQ,gBAAgB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,MACxF,OAAO;AAAA,KACR;AAAA,IACH,IACE,cACC,MAAM,SAAS,kBACd,MAAM,SAAS,gBACf,MAAM,SAAS,kBACjB;AAAA,MACA,OAAO,MAAM,MAAM;AAAA,MACnB,MAAM,gBAAgB,QAAQ;AAAA,IAChC;AAAA,IACA,IAAI,cAAc,MAAM,SAAS,uBAAuB,MAAM,SAAS,oBAAoB;AAAA,MACzF,gBAAgB,MAAM,WAAW;AAAA,MACjC,MAAM,gBAAgB,QAAQ;AAAA,IAChC;AAAA;AAAA,EAGF,MAAM,MAAM,OAAO,SAAkB,QAAgC;AAAA,IACnE,IAAI,IAAI,aAAa,iBAAiB,QAAQ,WAAW,OAAO;AAAA,MAC9D,OAAO,KAAK,EAAE,IAAI,MAAM,QAAQ,CAAC;AAAA,IACnC;AAAA,IACA,IAAI,IAAI,aAAa,oBAAoB,QAAQ,WAAW,QAAQ;AAAA,MAClE,OAAO,KACL,SAAO,IAAI,UAAU,GAAG;AAAA,QACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,QAChC,MAAM,QAAQ,OAAO,KAAK,SAAS,0BAA0B;AAAA,QAC7D,OAAO,OAAO,MAAM,gBAAgB,MAAM,KAAK;AAAA,OAChD,CACH,EACG,KAAK,CAAC,UAAU,KAAK,OAAO,GAAG,CAAC,EAChC,MAAM,MACL,KAAK,EAAE,OAAO,0DAA0D,GAAG,GAAG,CAChF;AAAA,IACJ;AAAA,IAEA,MAAM,YAAY,MAAM,aAAa,OAAO;AAAA,IAC5C,IAAI,cAAc,WAAW;AAAA,MAC3B,OAAO,KAAK,EAAE,OAAO,eAAe,GAAG,GAAG;AAAA,IAC5C;AAAA,IACA,MAAM,YACJ,IAAI,SAAS,WAAW,YAAY,KAAK,IAAI,SAAS,WAAW,iBAAiB;AAAA,IACpF,IAAI,aAAa,cAAc,SAAS;AAAA,MACtC,OAAO,KAAK,EAAE,OAAO,uBAAuB,GAAG,GAAG;AAAA,IACpD;AAAA,IACA,MAAM,iBAAiB,cAAc,UAAU,YAAY,UAAU;AAAA,IAErE,MAAM,SAAS,SAAO,IAAI,UAAU,GAAG;AAAA,MACrC,MAAM,QAAQ,OAAO,cAAW;AAAA,MAChC,IAAI,IAAI,aAAa,wBAAwB,QAAQ,WAAW,QAAQ;AAAA,QACtE,MAAM,QAAQ,OAAO,KAAK,SAAS,wBAAwB;AAAA,QAC3D,OAAO,KAAK,OAAO,MAAM,cAAc,KAAK,GAAG,GAAG;AAAA,MACpD;AAAA,MACA,IAAI,IAAI,aAAa,wBAAwB,QAAQ,WAAW,OAAO;AAAA,QACrE,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAAA,MAC7C;AAAA,MACA,MAAM,SAAS,IAAI,SAAS,MAAM,0CAA0C;AAAA,MAC5E,IAAI,QAAQ,WAAW,UAAU,SAAS,OAAO,WAAW;AAAA,QAC1D,MAAM,KAAK,OAAO,OAAO,eAAe,OAAO,EAAE;AAAA,QACjD,MAAM,UAAU,OAAO,MAAM,kBAAkB,EAAE;AAAA,QACjD,IAAI,aAAa,EAAE;AAAA,QACnB,OAAO,KAAK,OAAO;AAAA,MACrB;AAAA,MACA,IAAI,IAAI,aAAa,kBAAkB,QAAQ,WAAW,OAAO;AAAA,QAC/D,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAAA,MACxC;AAAA,MACA,IAAI,IAAI,aAAa,gBAAgB,QAAQ,WAAW,OAAO;AAAA,QAC7D,OAAO,KAAK,OAAO,MAAM,MAAM,CAAC;AAAA,MAClC;AAAA,MACA,IAAI,IAAI,aAAa,qBAAqB,QAAQ,WAAW,OAAO;AAAA,QAClE,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AAAA,MAC3C;AAAA,MACA,IAAI,IAAI,aAAa,8BAA8B,QAAQ,WAAW,QAAQ;AAAA,QAC5E,MAAM,QAAQ,OAAO,KAAK,SAAS,kCAAkC;AAAA,QACrE,MAAM,aAAa,OAAO,MAAM,wBAAwB,KAAK;AAAA,QAC7D,OAAO,KACL,OAAO,SAAO,WAAW,MAAM,QAAQ,IAAI,WAAW,IAAI,iBAAiB,CAAC,CAAC,GAC7E,GACF;AAAA,MACF;AAAA,MACA,MAAM,mBAAmB,IAAI,SAAS,MAAM,uCAAuC;AAAA,MACnF,IAAI,QAAQ,WAAW,UAAU,mBAAmB,OAAO,WAAW;AAAA,QACpE,MAAM,YAAY,OAAO,MAAM,iBAC7B,OAAO,OAAO,aAAa,iBAAiB,EAAE,CAChD;AAAA,QACA,IAAI,aACF,UAAU,gBACV,YAAY,KAAK,EAAE,MAAM,oBAAoB,aAAa,UAAU,GAAG,CAAC,CAC1E;AAAA,QACA,OAAO,KAAK,SAAS;AAAA,MACvB;AAAA,MACA,MAAM,eAAe,IAAI,SAAS,MAAM,mCAAmC;AAAA,MAC3E,IAAI,QAAQ,WAAW,UAAU,eAAe,OAAO,WAAW;AAAA,QAChE,IAAI,cAAc,SAAS;AAAA,UACzB,OAAO,OAAO,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,uBAAuB,CAAC;AAAA,QACjF;AAAA,QACA,MAAM,KAAK,OAAO,OAAO,UAAU,aAAa,EAAE;AAAA,QAClD,IAAI,IAAI,UAAU,EAAE,GAAG;AAAA,UACrB,OAAO,OAAO,IAAI,aAAa;AAAA,YAC7B,QAAQ;AAAA,YACR,SAAS,UAAU;AAAA,UACrB,CAAC;AAAA,QACH;AAAA,QACA,MAAM,YAAY,OAAO,MAAM,aAAa,EAAE;AAAA,QAC9C,IAAI,YAAY,EAAE;AAAA,QAClB,OAAO,KAAK,SAAS;AAAA,MACvB;AAAA,MACA,IAAI,IAAI,aAAa,gBAAgB,QAAQ,WAAW,QAAQ;AAAA,QAC9D,MAAM,QAAQ,OAAO,KAAK,SAAS,qBAAqB;AAAA,QACxD,MAAM,SAAS,OAAO,aAAa,OAAO,cAAc;AAAA,QACxD,MAAM,oBACJ,MAAM,aAAa,aAAa,MAAM,aAAa,aAC/C,YACA,OAAO,MAAM,WAAW,MAAM,UAAU,QAAQ,MAAM,YAAY,OAAO;AAAA,QAC/E,MAAM,QAAO,OAAO,MAAM,iBAAiB,OAAO,QAAQ,gBAAgB,iBAAiB;AAAA,QAC3F,OAAO,KAAK,OAAO,SAAO,WAAW,MAAM,SAAS,KAAI,CAAC,GAAG,GAAG;AAAA,MACjE;AAAA,MACA,MAAM,OAAO,IAAI,SAAS,MAAM,yBAAyB;AAAA,MACzD,IAAI,QAAQ,WAAW,SAAS,OAAO,OAAO,WAAW;AAAA,QACvD,OAAO,KAAK,OAAO,MAAM,QAAQ,OAAO,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC;AAAA,MAClE;AAAA,MACA,MAAM,QAAQ,IAAI,SAAS,MAAM,gCAAgC;AAAA,MACjE,IAAI,QAAQ,WAAW,SAAS,QAAQ,OAAO,WAAW;AAAA,QACxD,OAAO,KAAK,OAAO,MAAM,UAAU,OAAO,OAAO,QAAQ,MAAM,EAAE,CAAC,CAAC;AAAA,MACrE;AAAA,MACA,MAAM,UAAS,IAAI,SAAS,MAAM,iCAAiC;AAAA,MACnE,IAAI,QAAQ,WAAW,UAAU,UAAS,OAAO,WAAW;AAAA,QAC1D,MAAM,KAAK,OAAO,OAAO,QAAQ,QAAO,EAAE;AAAA,QAC1C,MAAM,UAAU,OAAO,MAAM,oBAAoB,EAAE;AAAA,QACnD,IAAI,QAAQ,WAAW,cAAc;AAAA,UACnC,IAAI,aACF,QAAQ,gBACR,YAAY,KAAK,EAAE,MAAM,cAAc,QAAQ,GAAG,CAAC,CACrD;AAAA,QACF;AAAA,QACA,OAAO,KAAK,OAAO;AAAA,MACrB;AAAA,MACA,MAAM,SAAS,IAAI,SAAS,MAAM,2BAA2B;AAAA,MAC7D,IAAI,QAAQ,WAAW,SAAS,SAAS,OAAO,WAAW;AAAA,QACzD,OAAO,KAAK,OAAO,MAAM,cAAc,OAAO,OAAO,UAAU,OAAO,EAAE,CAAC,CAAC;AAAA,MAC5E;AAAA,MACA,OAAO,OAAO,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,kBAAkB,CAAC;AAAA,KAC3E,EAAE,KACD,SAAO,SAAS,CAAC,UACf,iBAAiB,eACb,QACA,IAAI,aAAa;AAAA,MACf,QACE,MAAM,SAAS,gCACX,MACA,MAAM,QAAQ,WAAW,SAAS,IAChC,MACA,MAAM,QAAQ,SAAS,4CAA4C,IACjE,MACA,MAAM,QAAQ,SAAS,wBAAwB,IAC7C,MACA,MAAM,QAAQ,SAAS,iBAAiB,KACtC,MAAM,QAAQ,SAAS,6BAA6B,KACpD,MAAM,QAAQ,SAAS,+BAA+B,KACtD,MAAM,YAAY,sCAClB,MAAM,QAAQ,WAAW,+BAA+B,IACxD,MACA;AAAA,MACd,SAAS,MAAM;AAAA,IACjB,CAAC,CACP,CACF;AAAA,IACA,OAAO,KAAI,MAAM,EAAE,MAAM,CAAC,UACxB,iBAAiB,eACb,KACE,EAAE,OAAO,MAAM,WAAW,MAAM,yBAAyB,MAAM,QAAQ,GACvE,MAAM,MACR,IACA,KAAK,EAAE,OAAO,uBAAuB,GAAG,GAAG,CACjD;AAAA;AAAA,EAGF,MAAM,kBAAkB,IAAI,gBAAgB;AAAA,IAC1C,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,EAC1B,CAAC;AAAA,EACD,gBAAgB,GAAG,cAAc,CAAC,cAAc;AAAA,IAC9C,MAAM,SAAS;AAAA,IACf,OAAO,OAAO;AAAA,MACZ,YAAY,QAAQ,QAAQ;AAAA,MAC5B,eAAe;AAAA,MACf,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,MAChB,QAAQ;AAAA,IACV;AAAA,IACA,eAAe;AAAA,IACf,OAAO,KAAK,gBAAgB,WAAW,MAAM;AAAA,MAC3C,IAAI,CAAC,IAAI,aAAa,MAAM,GAAG;AAAA,QAC7B,OAAO,MAAM,MAAM,wBAAwB;AAAA,MAC7C;AAAA,OACC,IAAK;AAAA,IACR,IAAI,QAAQ;AAAA,IACZ,OAAO,GAAG,QAAQ,MAAM;AAAA,MACtB,QAAQ;AAAA,KACT;AAAA,IACD,MAAM,YAAY,YAAY,MAAM;AAAA,MAClC,IAAI,CAAC,IAAI,aAAa,MAAM,GAAG;AAAA,QAC7B;AAAA,MACF;AAAA,MACA,IAAI,CAAC,OAAO;AAAA,QACV,OAAO,UAAU;AAAA,QACjB;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,MACR,OAAO,KAAK;AAAA,OACX,KAAM;AAAA,IACT,UAAU,MAAM;AAAA,IAEhB,OAAO,GAAG,WAAW,CAAC,YAAqB;AAAA,MACzC,IAAI,CAAC,IAAI,aAAa,MAAM,GAAG;AAAA,QAC7B,MAAM,OAAO,OAAO,WAAW,WAAW,OAAO,CAAC;AAAA,QAClD,IAAI,OAAO,KAAK,wBAAwB,OAAO,MAAO;AAAA,UACpD,OAAO,MAAM,MAAM,0CAA0C;AAAA,UAC7D;AAAA,QACF;AAAA,QACA,OAAO,KAAK,uBAAuB;AAAA,QACnC,OAAO,KAAK,aAAa,kBAAkB,QAAQ,OAAO,EAAE,MAAM,CAAC,UAAmB;AAAA,UACpF,UAAU,QAAQ,gBAAgB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,SACzF;AAAA,QACD;AAAA,MACF;AAAA,MACA,IAAI,OAAO,KAAK,kBAAkB,GAAG;AAAA,QACnC,OAAO,MAAM,MAAM,6BAA6B;AAAA,QAChD;AAAA,MACF;AAAA,MACA,OAAO,KAAK,kBAAkB;AAAA,MAC9B,OAAO,KAAK,aAAa,OAAO,KAAK,WAClC,KAAK,MAAO,OAAO,KAAK,SAAS,YAAY,kBAAkB,QAAQ,OAAO,CAAE,EAChF,MAAM,CAAC,UAAmB;AAAA,QACzB,UAAU,QAAQ,gBAAgB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,OACzF,EACA,QAAQ,MAAM;AAAA,QACb,OAAO,KAAK,iBAAiB,KAAK,IAAI,GAAG,OAAO,KAAK,iBAAiB,CAAC;AAAA,OACxE;AAAA,KACJ;AAAA,IAED,OAAO,KAAK,SAAS,MAAM;AAAA,MACzB,cAAc,SAAS;AAAA,MACvB,OAAO,KAAK,SAAS;AAAA,MACrB,cAAc,KAAK,IAAI,GAAG,cAAc,CAAC;AAAA,MACzC,MAAM,WAAW,IAAI,OAAO,MAAM;AAAA,MAClC,IAAI,aAAa,WAAW;AAAA,QAC1B;AAAA,MACF;AAAA,MACK,KACH,SAAO,IAAI,UAAU,GAAG;AAAA,QACtB,MAAM,QAAQ,OAAO,cAAW;AAAA,QAChC,OAAO,MAAM,gBAAgB,QAAQ;AAAA,QACrC,OAAO,MAAM,qBAAqB,QAAQ;AAAA,QAC1C,OAAO,MAAM,kBAAkB,QAAQ;AAAA,OACxC,CACH,EAAE,MAAM,CAAC,UAAmB,QAAQ,MAAM,KAAK,CAAC;AAAA,KACjD;AAAA,GACF;AAAA,EAED,MAAM,SAAS,aAAa,CAAC,UAAU,aAAa;AAAA,IAC7C,WAAW,QAAQ,EACrB,KAAK,CAAC,YAAY;AAAA,MACjB,MAAM,MAAM,IAAI,IAAI,QAAQ,GAAG;AAAA,MAC/B,OAAO,IAAI,SAAS,WAAW,OAAO,IAClC,IAAI,SAAS,GAAG,IAChB,KAAK,EAAE,MAAM,gBAAgB,SAAS,QAAQ,UAAU,CAAC;AAAA,KAC9D,EACA,KAAK,CAAC,aAAa,aAAa,UAAU,QAAQ,CAAC,EACnD,MAAM,CAAC,UACN,aACE,UACA,KACE,EAAE,OAAO,iBAAiB,QAAQ,MAAM,UAAU,kBAAkB,GACpE,iBAAiB,SAAS,MAAM,QAAQ,SAAS,SAAS,IAAI,MAAM,GACtE,CACF,CACF;AAAA,GACH;AAAA,EACD,OAAO,GAAG,WAAW,CAAC,SAAS,QAAQ,SAAS;AAAA,IAC9C,MAAM,MAAM,IAAI,IAAI,QAAQ,OAAO,KAAK,qBAAqB;AAAA,IAC7D,IAAI,IAAI,aAAa,cAAc;AAAA,MACjC,cAAc,QAAQ,KAAK,WAAW;AAAA,MACtC;AAAA,IACF;AAAA,IACA,IAAI,eAAe,MAAO;AAAA,MACxB,cAAc,QAAQ,KAAK,qBAAqB;AAAA,MAChD;AAAA,IACF;AAAA,IACA,gBAAgB,cAAc,SAAS,QAAQ,MAAM,CAAC,cAAc;AAAA,MAClE,gBAAgB,KAAK,cAAc,WAAW,OAAO;AAAA,KACtD;AAAA,GACF;AAAA,EACD,MAAM,IAAI,QAAc,CAAC,UAAS,WAAW;AAAA,IAC3C,OAAO,KAAK,SAAS,MAAM;AAAA,IAC3B,OAAO,OAAO,mBAAmB,aAAa,GAAG,MAAM;AAAA,MACrD,OAAO,IAAI,SAAS,MAAM;AAAA,MAC1B,SAAQ;AAAA,KACT;AAAA,GACF;AAAA,EAED,MAAM,UAAU,OAAO,QAAQ;AAAA,EAC/B,MAAM,WACJ,OAAO,YAAY,WACf,UACA,SAAS,WAAW,SAClB,IAAI,QAAQ,YAAY,QAAQ,SAChC,GAAG,SAAS,WAAW,cAAc,QAAQ,SAAS,QAAQ,cAAc;AAAA,EACpF,QAAQ,IAAI,oCAAoC,UAAU;AAAA,EAC1D,IAAI,WAAW;AAAA,EACf,MAAM,WAAW,YAA2B;AAAA,IAC1C,IAAI,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,WAAW,UAAU,gBAAgB,SAAS;AAAA,MAC5C,OAAO,MAAM,MAAM,qBAAqB;AAAA,IAC1C;AAAA,IACA,MAAM,IAAI,QAAc,CAAC,aAAY,OAAO,MAAM,MAAM,SAAQ,CAAC,CAAC;AAAA,IAClE,gBAAgB,MAAM;AAAA,IACtB,MAAM,QAAQ,QAAQ;AAAA;AAAA,EAExB,QAAQ,KAAK,UAAU,MAAM,KAAK,SAAS,CAAC;AAAA,EAC5C,QAAQ,KAAK,WAAW,MAAM,KAAK,SAAS,CAAC;AAAA;AAAA;AAAA,EA/2B/C;AAAA,EA6BA;AAAA,EACA;AAAA,EACA;AAAA,EAIM,eAAN,MAAM,qBAAqB,SAAO,iBAA+B,EAAE,sBAAsB;AAAA,IACvF,QAAQ,SAAO;AAAA,IACf,SAAS,SAAO;AAAA,EAClB,CAAC,EAAE;AAAA,EAAC;AAAA,EA40BJ,IAAI,OAAkB,CAKtB;AAAA;;;ACr3BA;AACA,mBAAS;;;ACHT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBA,4BAAkB,0BAAe;AAAA;AAO1B,MAAM,0BAA0B,QAAO,iBAAoC,EAChF,4BACA;AAAA,EACE,WAAW,QAAO;AAAA,EAClB,SAAS,QAAO;AAAA,EAChB,QAAQ,QAAO,YAAY,QAAO,MAAM;AAC1C,CACF,EAAE;AAAC;AAAA;AAEI,MAAM,yBAAyB,QAAO,iBAAmC,EAC9E,2BACA,EAAE,WAAW,QAAO,QAAQ,SAAS,QAAO,OAAO,CACrD,EAAE;AAAC;AAAA;AA6BI,MAAM,gBAAgB,QAAQ,QAA4B,EAAE,qBAAqB,EAAE;AAAC;AAE3F,IAAM,mBAAmB,CAAC,QAAwB,IAAI,QAAQ,QAAQ,EAAE;AAExE,IAAM,WAAW,OAAO,UAAoB,cAAwC;AAAA,EAClF,IAAI,SAAS,SAAS,MAAM;AAAA,IAC1B,MAAM,IAAI,iBAAiB,EAAE,WAAW,SAAS,mCAAmC,CAAC;AAAA,EACvF;AAAA,EACA,MAAM,SAAS,SAAS,KAAK,UAAU;AAAA,EACvC,MAAM,SAA4B,CAAC;AAAA,EACnC,IAAI,OAAO;AAAA,EACX,OAAO,MAAM;AAAA,IACX,MAAM,QAAQ,MAAM,OAAO,KAAK;AAAA,IAChC,IAAI,MAAM,MAAM;AAAA,MACd;AAAA,IACF;AAAA,IACA,QAAQ,MAAM,MAAM;AAAA,IACpB,IAAI,OAAO,IAAI,OAAO,MAAM;AAAA,MAC1B,MAAM,OAAO,OAAO;AAAA,MACpB,MAAM,IAAI,iBAAiB,EAAE,WAAW,SAAS,gCAAgC,CAAC;AAAA,IACpF;AAAA,IACA,OAAO,KAAK,MAAM,KAAK;AAAA,EACzB;AAAA,EACA,MAAM,QAAQ,IAAI,WAAW,IAAI;AAAA,EACjC,IAAI,SAAS;AAAA,EACb,WAAW,SAAS,QAAQ;AAAA,IAC1B,MAAM,IAAI,OAAO,MAAM;AAAA,IACvB,UAAU,MAAM;AAAA,EAClB;AAAA,EACA,MAAM,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AAAA,EAC3C,IAAI;AAAA,IACF,OAAO,KAAK,MAAM,IAAI;AAAA,IACtB,OAAO,OAAO;AAAA,IACd,MAAM,IAAI,iBAAiB;AAAA,MACzB;AAAA,MACA,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IAChE,CAAC;AAAA;AAAA;AAIL,IAAM,kBAAkB,OAAO,UAAoB,cAAuC;AAAA,EACxF,MAAM,OAAO,MAAM,SAAS,UAAU,SAAS,EAAE,MAAM,MAAG;AAAA,IAAG;AAAA,GAAS;AAAA,EACtE,MAAM,UAAU,QAAO,oBAAoB,aAAa,EAAE,IAAI;AAAA,EAC9D,OAAO,QAAQ,SAAS,SACpB,QAAQ,MAAM,QACd,GAAG,SAAS,UAAU,SAAS,aAAa,KAAK;AAAA;AAGhD,IAAM,OAAO,CAAC,YAA2C;AAAA,EAC9D,MAAM,UAAU,iBAAiB,QAAQ,OAAO;AAAA,EAEhD,MAAM,UAAU,CACd,WACA,MACA,QACA,SAEA,QAAO,IAAI,UAAU,GAAG;AAAA,IACtB,MAAM,WAAW,OAAO,QAAO,WAAW;AAAA,MACxC,KAAK,CAAC,WACJ,MAAM,GAAG,UAAU,QAAQ;AAAA,WACtB;AAAA,QACH,QAAQ,YAAY,IAAI,CAAC,QAAQ,YAAY,QAAQ,KAAM,CAAC,CAAC;AAAA,QAC7D,SAAS;AAAA,UACP,eAAe,UAAU,QAAQ;AAAA,UACjC,gBAAgB;AAAA,aACb,MAAM;AAAA,QACX;AAAA,MACF,CAAC;AAAA,MACH,OAAO,CAAC,UACN,IAAI,kBAAkB;AAAA,QACpB;AAAA,QACA,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MAChE,CAAC;AAAA,IACL,CAAC;AAAA,IACD,IAAI,CAAC,SAAS,IAAI;AAAA,MAChB,OAAO,OAAO,QAAO,KACnB,IAAI,kBAAkB;AAAA,QACpB;AAAA,QACA,SAAS,OAAO,QAAO,QAAQ,MAAM,gBAAgB,UAAU,SAAS,CAAC;AAAA,QACzE,QAAQ,SAAS;AAAA,MACnB,CAAC,CACH;AAAA,IACF;AAAA,IACA,MAAM,OAAO,OAAO,QAAO,WAAW;AAAA,MACpC,KAAK,MAAM,SAAS,UAAU,SAAS;AAAA,MACvC,OAAO,CAAC,UACN,iBAAiB,mBACb,QACA,IAAI,iBAAiB,EAAE,WAAW,SAAS,OAAO,KAAK,EAAE,CAAC;AAAA,IAClE,CAAC;AAAA,IACD,OAAO,OAAO,QAAO,oBAAoB,MAAM,EAAE,IAAI,EAAE,KACrD,QAAO,SAAS,CAAC,UAAU,IAAI,iBAAiB,EAAE,WAAW,SAAS,OAAO,KAAK,EAAE,CAAC,CAAC,CACxF;AAAA,GACD;AAAA,EAEH,OAAO,QAAQ,GAAG;AAAA,IAChB,SAAS,MAAM,QAAQ,uBAAuB,gBAAgB,QAAO,MAAM,MAAM,CAAC;AAAA,IAClF,cAAc,CAAC,aACb,QACE,4BACA,gBAAgB,mBAAmB,QAAQ,YAC3C,QACA,EAAE,QAAQ,OAAO,CACnB;AAAA,IACF,YAAY,CAAC,UACX,QAAQ,0BAA0B,cAAc,MAAM;AAAA,MACpD,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,KAAK;AAAA,IAC5B,CAAC;AAAA,IACH,SAAS,CAAC,WACR,QAAQ,uBAAuB,cAAc,mBAAmB,MAAM,KAAK,IAAI;AAAA,IACjF,WAAW,CAAC,WACV,QAAQ,yBAAyB,cAAc,mBAAmB,MAAM,WAAW,SAAS;AAAA,IAC9F,YAAY,CAAC,WACX,QAAQ,0BAA0B,cAAc,mBAAmB,MAAM,YAAY,MAAM;AAAA,MACzF,QAAQ;AAAA,IACV,CAAC;AAAA,IACH,eAAe,CAAC,aACd,QACE,6BACA,gBAAgB,mBAAmB,QAAQ,KAC3C,aACF;AAAA,IACF,eAAe,CAAC,UACd,QAAQ,6BAA6B,sBAAsB,mBAAmB;AAAA,MAC5E,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,KAAK;AAAA,IAC5B,CAAC;AAAA,IACH,cAAc,MACZ,QAAQ,4BAA4B,sBAAsB,QAAO,MAAM,WAAW,CAAC;AAAA,IACrF,mBAAmB,CAAC,cAClB,QACE,iCACA,sBAAsB,mBAAmB,SAAS,YAClD,aACA,EAAE,QAAQ,OAAO,CACnB;AAAA,IACF,OAAO,MAAM,QAAQ,qBAAqB,cAAc,YAAY;AAAA,IACpE,yBAAyB,CAAC,UACxB,QACE,uCACA,4BACA,QAAO,MAAM,eAAe,GAC5B,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,KAAK,EAAE,CAChD;AAAA,IACF,YAAY,MACV,QAAQ,0BAA0B,mBAAmB,QAAO,MAAM,eAAe,CAAC;AAAA,IACpF,kBAAkB,CAAC,gBACjB,QACE,gCACA,mBAAmB,mBAAmB,WAAW,aACjD,iBACA,EAAE,QAAQ,OAAO,CACnB;AAAA,EACJ,CAAC;AAAA;AAGI,IAAM,kBAAkB,CAC7B,SACA,UAEA,QAAO,IAAI,UAAU,GAAG;AAAA,EACtB,MAAM,YAAY;AAAA,EAClB,MAAM,WAAW,OAAO,QAAO,WAAW;AAAA,IACxC,KAAK,CAAC,WACJ,MAAM,GAAG,iBAAiB,OAAO,mBAAmB;AAAA,MAClD,QAAQ;AAAA,MACR,QAAQ,YAAY,IAAI,CAAC,QAAQ,YAAY,QAAQ,KAAM,CAAC,CAAC;AAAA,MAC7D,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,MAC9C,MAAM,KAAK,UAAU,KAAK;AAAA,IAC5B,CAAC;AAAA,IACH,OAAO,CAAC,UACN,IAAI,kBAAkB;AAAA,MACpB;AAAA,MACA,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IAChE,CAAC;AAAA,EACL,CAAC;AAAA,EACD,IAAI,CAAC,SAAS,IAAI;AAAA,IAChB,OAAO,OAAO,QAAO,KACnB,IAAI,kBAAkB;AAAA,MACpB;AAAA,MACA,SAAS,OAAO,QAAO,QAAQ,MAAM,gBAAgB,UAAU,SAAS,CAAC;AAAA,MACzE,QAAQ,SAAS;AAAA,IACnB,CAAC,CACH;AAAA,EACF;AAAA,EACA,MAAM,OAAO,OAAO,QAAO,WAAW;AAAA,IACpC,KAAK,MAAM,SAAS,UAAU,SAAS;AAAA,IACvC,OAAO,CAAC,UACN,iBAAiB,mBACb,QACA,IAAI,iBAAiB,EAAE,WAAW,SAAS,OAAO,KAAK,EAAE,CAAC;AAAA,EAClE,CAAC;AAAA,EACD,OAAO,OAAO,QAAO,oBAAoB,aAAa,EAAE,IAAI,EAAE,KAC5D,QAAO,SAAS,CAAC,UAAU,IAAI,iBAAiB,EAAE,WAAW,SAAS,OAAO,KAAK,EAAE,CAAC,CAAC,CACxF;AAAA,CACD;AAEI,IAAM,QAAQ,CAAC,YAAgC,MAAM,QAAQ,SAAS,KAAK,OAAO,CAAC;;;AC3Q1F;;;ACDA;AACA,mBAAS,mBAAQ;AACjB;AACA;AACA;AACA;AACA;AAAA;AAGO,MAAM,iCAAiC,QAAO,iBAA2C,EAC9F,8BACA,EAAE,UAAU,UAAU,SAAS,QAAO,OAAO,CAC/C,EAAE;AAAC;AAAA;AAEI,MAAM,yBAAyB,QAAO,iBAAmC,EAC9E,2BACA;AAAA,EACE,UAAU;AAAA,EACV,SAAS,QAAO;AAAA,EAChB,UAAU,QAAO,YAAY,QAAO,MAAM;AAC5C,CACF,EAAE;AAAC;AAwBH,IAAM,cAAc;AAAA,EAClB,OAAO;AAAA,EACP,eAAe;AAAA,EACf,UAAU;AACZ;AAEA,IAAM,sBAAsB,OAA0B;AAAA,KACjD,OAAO,YACR,OAAO,QAAQ,QAAQ,GAAG,EAAE,OAC1B,EAAE,UAAU,CAAC,KAAK,WAAW,SAAS,KAAK,SAAS,eACtD,CACF;AAAA,EACA,MAAM,sBAAsB,EAAE,KAAK,SAAS;AAC9C;AAEA,IAAM,SAAS,CAAC,UACd,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IAC/D,OAAO,YAAY,OAAO,QAAQ,KAAK,CAAC,IACxC;AACN,IAAM,OAAO,CAAC,UAAwC,OAAO,UAAU,WAAW,QAAQ;AAE1F,IAAM,uBAAuB,CAAC,YAA2C;AAAA,EACvE,IAAI,SAAS,MAAM,WAAW,QAAQ,OAAO,EAAE,SAAS,GAAG;AAAA,IACzD,OAAO,CAAC,OAAO;AAAA,EACjB;AAAA,EACA,QAAQ,QAAQ,IAAI,WAAW,uBAC5B,MAAM,GAAG,EACT,OAAO,CAAC,cAAc,UAAU,SAAS,CAAC,EAC1C,IAAI,CAAC,cAAc,GAAG,UAAU,UAAU,YAAY,GAAG;AAAA;AAG9D,IAAM,wBAAwB,MAA6B;AAAA,EACzD,MAAM,OAAO,QAAQ;AAAA,EACrB,MAAM,cAAc,QAAQ,IAAI,QAAQ,IAAI,MAAM,SAAS,EAAE,OAAO,OAAO;AAAA,EAC3E,MAAM,SACJ,SAAS,MAAM,UACX;AAAA,IACE,QAAQ,IAAI,YAAY,YAAY,YAAY,KAAK,QAAQ,IAAI,SAAS,KAAK;AAAA,IAC/E,QAAQ,IAAI,iBAAiB,YACzB,YACA,KAAK,QAAQ,IAAI,cAAc,MAAM;AAAA,IACzC,KAAK,MAAM,QAAQ,KAAK;AAAA,EAC1B,IACA;AAAA,IACE,KAAK,MAAM,UAAU,KAAK;AAAA,IAC1B,KAAK,MAAM,eAAe,KAAK;AAAA,IAC/B,KAAK,MAAM,QAAQ,KAAK;AAAA,IACxB,KAAK,MAAM,UAAU,SAAS,MAAM;AAAA,IACpC;AAAA,IACA;AAAA,EACF;AAAA,EACN,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,YAAY,GAAG,OAAO,OAAO,CAAC,SAAS,SAAS,SAAS,CAAC,CAAC,CAAC;AAAA;AAG9E,IAAM,iBAAiB,CAAC,YAAwC;AAAA,EACrE,MAAM,QACJ,WAAW,OAAO,KAAK,QAAQ,SAAS,GAAG,KAAK,QAAQ,SAAS,IAAI,IACjE,CAAC,EAAE,IACH,sBAAsB;AAAA,EAC5B,WAAW,aAAa,OAAO;AAAA,IAC7B,WAAW,aAAa,qBAAqB,OAAO,GAAG;AAAA,MACrD,MAAM,OAAO,UAAU,WAAW,IAAI,YAAY,KAAK,WAAW,SAAS;AAAA,MAC3E,IAAI;AAAA,QACF,WAAW,MAAM,SAAS,MAAM,UAAU,UAAU,OAAO,UAAU,IAAI;AAAA,QACzE,OAAO;AAAA,QACP,MAAM;AAAA,QACN;AAAA;AAAA,IAEJ;AAAA,EACF;AAAA,EACA;AAAA;AAGK,IAAM,YAAY,CAAC,aACxB,aAAa,cAAc,eAAe,YAAY,SAAS,MAAM;AAChE,IAAM,qBAAqB,MAChC,SAAS,SACN,OAAO,CAAC,aAAsC,aAAa,UAAU,EACrE,OAAO,SAAS;AAErB,IAAM,cAAc,CAAC,QAAkB,OAAe,eACpD,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,EAC/B,MAAM,SAAwB,CAAC;AAAA,EAC/B,IAAI,OAAO;AAAA,EACX,MAAM,UAAU,MAAY;AAAA,IAC1B,OAAO,IAAI,QAAQ,MAAM;AAAA,IACzB,OAAO,IAAI,OAAO,KAAK;AAAA,IACvB,OAAO,IAAI,SAAS,OAAO;AAAA;AAAA,EAE7B,MAAM,SAAS,CAAC,UAAiC;AAAA,IAC/C,MAAM,QAAQ,OAAO,UAAU,WAAW,OAAO,KAAK,KAAK,IAAI;AAAA,IAC/D,QAAQ,MAAM;AAAA,IACd,IAAI,QAAQ,OAAO;AAAA,MACjB,OAAO,KAAK,KAAK;AAAA,MACjB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,OAAO,IAAI,MAAM,4BAA4B,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC;AAAA;AAAA,EAE9E,MAAM,QAAQ,MAAY;AAAA,IACxB,QAAQ;AAAA,IACR,QAAQ,OAAO,OAAO,QAAQ,IAAI,EAAE,SAAS,MAAM,CAAC;AAAA;AAAA,EAEtD,MAAM,UAAU,CAAC,UAAuB;AAAA,IACtC,QAAQ;AAAA,IACR,OAAO,KAAK;AAAA;AAAA,EAEd,OAAO,GAAG,QAAQ,MAAM;AAAA,EACxB,OAAO,KAAK,OAAO,KAAK;AAAA,EACxB,OAAO,KAAK,SAAS,OAAO;AAAA,CAC7B;AAOH,IAAM,cAAc,CAAC,QAAkB,UACrC,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,EAC/B,MAAM,SAAwB,CAAC;AAAA,EAC/B,IAAI,WAAW;AAAA,EACf,IAAI,YAAY;AAAA,EAChB,MAAM,SAAS,CAAC,UAAiC;AAAA,IAC/C,MAAM,QAAQ,OAAO,UAAU,WAAW,OAAO,KAAK,KAAK,IAAI;AAAA,IAC/D,MAAM,YAAY,QAAQ;AAAA,IAC1B,IAAI,YAAY,GAAG;AAAA,MACjB,MAAM,WAAW,MAAM,cAAc,YAAY,QAAQ,MAAM,SAAS,GAAG,SAAS;AAAA,MACpF,OAAO,KAAK,QAAQ;AAAA,MACpB,YAAY,SAAS;AAAA,IACvB;AAAA,IACA,cAAc,MAAM,aAAa;AAAA;AAAA,EAEnC,MAAM,QAAQ,MACZ,QAAQ,EAAE,MAAM,OAAO,OAAO,QAAQ,QAAQ,EAAE,SAAS,MAAM,GAAG,UAAU,CAAC;AAAA,EAC/E,OAAO,GAAG,QAAQ,MAAM;AAAA,EACxB,OAAO,KAAK,OAAO,KAAK;AAAA,EACxB,OAAO,KAAK,SAAS,MAAM;AAAA,CAC5B;AAEH,IAAM,iBAAiB,CAAC,SAAiB,QAAsB,aAA6B;AAAA,EAC1F,MAAM,WAAW,GAAG,8BAA8B;AAAA,EAClD,MAAM,SAAS,OAAO,YAAY;AAAA,mCAAsC;AAAA,EACxE,MAAM,aAAY,QAAS,OAAO;AAAA,EAClC,OAAO,IAAI,OAAO,KAAK,KAAK,KAAK,UAAU,MAAM,GAAG,UAAS,IAAI;AAAA;AAGnE,IAAM,eAAe,CAAC,YAA+C;AAAA,EACnE,MAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAI,QAAQ,UAAU,YAAY,CAAC,IAAI,CAAC,WAAW,QAAQ,KAAK;AAAA,IAChE,GAAI,QAAQ,YAAY,YACpB,CAAC,IACD,CAAC,MAAM,gBAAgB,KAAK,UAAU,QAAQ,OAAO,GAAG;AAAA,EAC9D;AAAA,EACA,OAAO,QAAQ,cAAc,YACzB,CAAC,SAAS,QAAQ,GAAG,QAAQ,GAAG,IAChC,CAAC,SAAS,QAAQ,UAAU,GAAG,QAAQ,QAAQ,WAAW,GAAG;AAAA;AAGnE,IAAM,gBAAgB,CAAC,YAA+C;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAI,QAAQ,UAAU,YAAY,CAAC,IAAI,CAAC,WAAW,QAAQ,KAAK;AAAA,EAChE,GAAI,QAAQ,cAAc,YAAY,CAAC,IAAI,CAAC,YAAY,QAAQ,SAAS;AAC3E;AAEA,IAAM,kBAAkB,CAAC,SAAqB,eAA8C;AAAA,EAC1F;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAI,QAAQ,UAAU,YAAY,CAAC,IAAI,CAAC,WAAW,QAAQ,KAAK;AAAA,EAChE,GAAI,QAAQ,cAAc,YAAY,CAAC,IAAI,CAAC,aAAa,QAAQ,SAAS;AAAA,EAC1E;AAAA,EACA,UAAU;AACZ;AAQA,IAAM,iBAAiB,OAAO,YAAkD;AAAA,EAC9E,QAAQ,QAAQ;AAAA,SACT;AAAA,MACH,OAAO;AAAA,QACL,SAAS,aAAa,OAAO;AAAA,QAC7B,OAAO,QAAQ;AAAA,QACf,SAAS,MAAM,QAAQ,QAAQ;AAAA,MACjC;AAAA,SACG;AAAA,MACH,OAAO;AAAA,QACL,SAAS,cAAc,OAAO;AAAA,QAC9B,OAAO,QAAQ;AAAA,QACf,SAAS,MAAM,QAAQ,QAAQ;AAAA,MACjC;AAAA,SACG,YAAY;AAAA,MACf,MAAM,YAAY,MAAM,QAAQ,KAAK,OAAO,GAAG,kBAAkB,CAAC;AAAA,MAClE,MAAM,aAAa,KAAK,WAAW,WAAW;AAAA,MAC9C,IAAI;AAAA,QACF,IAAI,SAAS,MAAM,SAAS;AAAA,UAC1B,MAAM,MAAM,WAAW,GAAK;AAAA,QAC9B;AAAA,QACA,MAAM,UAAU,YAAY,QAAQ,QAAQ,EAAE,MAAM,IAAM,CAAC;AAAA,QAC3D,OAAO;AAAA,UACL,SAAS,gBAAgB,SAAS,UAAU;AAAA,UAC5C,SAAS,MAAM,GAAG,WAAW,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,QAC/D;AAAA,QACA,OAAO,OAAO;AAAA,QACd,MAAM,GAAG,WAAW,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC,EAAE,MAAM,MAAG;AAAA,UAAG;AAAA,SAAS;AAAA,QAC3E,MAAM;AAAA;AAAA,IAEV;AAAA;AAAA;AAIJ,IAAM,mBAAmB,OACvB,QACA,YACkB;AAAA,EAClB,MAAM,QAAQ,OAAO;AAAA,EACrB,IAAI,SAAwB,CAAC;AAAA,EAC7B,IAAI,OAAO;AAAA,EACX,IAAI,YAAY;AAAA,EAChB,MAAM,SAAS,CAAC,UAAwB;AAAA,IACtC,IAAI,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,IAAI,OAAO,MAAM,aAAa,OAAO;AAAA,MACnC,SAAS,CAAC;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ;AAAA,IACF;AAAA,IACA,IAAI,MAAM,aAAa,GAAG;AAAA,MACxB,OAAO,KAAK,KAAK;AAAA,MACjB,QAAQ,MAAM;AAAA,IAChB;AAAA;AAAA,EAEF,MAAM,OAAO,MAAY;AAAA,IACvB,IAAI,WAAW;AAAA,MACb,YAAY;AAAA,MACZ;AAAA,IACF;AAAA,IACA,MAAM,OAAO,OAAO,OAAO,QAAQ,IAAI,EAAE,SAAS,MAAM;AAAA,IACxD,SAAS,CAAC;AAAA,IACV,OAAO;AAAA,IACP,IAAI,KAAK,KAAK,EAAE,WAAW,GAAG;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,OAAO,KAAK,MAAM,IAAI,CAAY;AAAA,IAChD,IAAI,UAAU,WAAW;AAAA,MACvB,QAAQ,KAAK;AAAA,IACf;AAAA;AAAA,EAGF,iBAAiB,SAAS,QAAQ;AAAA,IAChC,MAAM,QAAQ,OAAO,SAAS,KAAK,IAAI,QAAQ,OAAO,KAAK,OAAO,KAAK,CAAC;AAAA,IACxE,IAAI,QAAQ;AAAA,IACZ,SAAS,UAAU,MAAM,QAAQ,IAAM,KAAK,EAAG,YAAY,MAAM;AAAA,MAC/D,OAAO,MAAM,SAAS,OAAO,OAAO,CAAC;AAAA,MACrC,KAAK;AAAA,MACL,QAAQ,UAAU;AAAA,MAClB,UAAU,MAAM,QAAQ,IAAM,KAAK;AAAA,IACrC;AAAA,IACA,OAAO,MAAM,SAAS,KAAK,CAAC;AAAA,EAC9B;AAAA,EACA,IAAI,OAAO,KAAK,WAAW;AAAA,IACzB,KAAK;AAAA,EACP;AAAA;AAGF,IAAM,aAAa,OAAO,QAAkB,oBAAiD;AAAA,EAC3F,IAAI,SAAS;AAAA,EACb,IAAI,YAAY;AAAA,EAChB,MAAM,iBAAiB,QAAQ,CAAC,UAAU;AAAA,IACxC,IAAI,KAAK,MAAM,IAAI,MAAM,kBAAkB;AAAA,MACzC,YAAY,KAAK,MAAM,SAAS,KAAK;AAAA,IACvC;AAAA,IACA,IAAI,KAAK,MAAM,IAAI,MAAM,kBAAkB;AAAA,MACzC;AAAA,IACF;AAAA,IACA,MAAM,OAAO,OAAO,MAAM,IAAI;AAAA,IAC9B,IAAI,KAAK,MAAM,IAAI,MAAM,iBAAiB;AAAA,MACxC,SAAS,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,OAAO,KAAK;AAAA,IACtD;AAAA,GACD;AAAA,EACD,OAAO;AAAA,IACL,QAAQ,UAAU;AAAA,OACd,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU;AAAA,EACjD;AAAA;AAGF,IAAM,cAAc,CAAC,QAAgB,oBAAwC;AAAA,EAC3E,MAAM,QAAQ,OAAO,KAAK,MAAM,MAAM,CAAY;AAAA,EAClD,MAAM,SAAS,KAAK,OAAO,MAAM,KAAK,KAAK,OAAO,OAAO;AAAA,EACzD,IAAI,WAAW,WAAW;AAAA,IACxB,MAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AAAA,EACA,MAAM,YAAY,KAAK,OAAO,UAAU,KAAK,KAAK,OAAO,SAAS,KAAK;AAAA,EACvE,OAAO,EAAE,WAAY,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU,EAAG;AAAA;AAGrE,IAAM,eAAe,CAAC,UAAuC;AAAA,EAC3D,MAAM,OAAO,OAAO,KAAK;AAAA,EACzB,IAAI,SAAS,WAAW;AAAA,IACtB;AAAA,EACF;AAAA,EACA,OAAO,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,IAAI,GAAG,IAAI;AAAA;AAG9E,IAAM,gBAAgB,CAAC,UAA0C;AAAA,EAC/D,IAAI,KAAK,MAAM,IAAI,MAAM,SAAS;AAAA,IAChC;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,OAAO,MAAM,KAAK;AAAA,EAChC,MAAM,OAAO,KAAK,OAAO,IAAI;AAAA,EAC7B,MAAM,UACJ,KAAK,OAAO,OAAO,IAAI,GAAG,OAAO,KACjC,KAAK,OAAO,OAAO,KACnB,KAAK,MAAM,OAAO,KAClB,KAAK,MAAM,KAAK;AAAA,EAClB,IAAI,SAAS,aAAa,YAAY,WAAW;AAAA,IAC/C,OAAO,YAAY,SAAS;AAAA,EAC9B;AAAA,EACA,OAAO,YAAY,YAAY,+BAA+B,aAAa;AAAA;AAG7E,IAAM,gBAAgB,OAAO,QAAkB,oBAAiD;AAAA,EAC9F,IAAI,SAAS;AAAA,EACb,IAAI,YAAY;AAAA,EAChB,MAAM,iBAAiB,QAAQ,CAAC,UAAU;AAAA,IACxC,MAAM,UAAU,cAAc,KAAK;AAAA,IACnC,IAAI,YAAY,WAAW;AAAA,MACzB,MAAM,IAAI,MAAM,OAAO;AAAA,IACzB;AAAA,IACA,YACE,KAAK,MAAM,SAAS,KACpB,KAAK,MAAM,SAAS,KACpB,KAAK,MAAM,UAAU,KACrB,KAAK,OAAO,MAAM,IAAI,GAAG,SAAS,KAClC;AAAA,IACF,MAAM,UAAU,aAAa,MAAM,IAAI,KAAK,aAAa,KAAK,KAAK,KAAK,MAAM,MAAM;AAAA,IACpF,IAAI,YAAY,aAAa,QAAQ,SAAS,GAAG;AAAA,MAC/C,SAAS;AAAA,IACX;AAAA,GACD;AAAA,EACD,IAAI,OAAO,WAAW,GAAG;AAAA,IACvB,MAAM,IAAI,MACR,8FACF;AAAA,EACF;AAAA,EACA,OAAO,EAAE,WAAY,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU,EAAG;AAAA;AAGrE,IAAM,QAAQ,OACZ,SACA,QACA,cACuB;AAAA,EACvB,IAAI;AAAA,IACF,QAAQ,QAAQ;AAAA,WACT;AAAA,QACH,OAAO,MAAM,WAAW,QAAQ,QAAQ,SAAS;AAAA,WAC9C;AAAA,QACH,OAAO,YAAY,MAAM,YAAY,QAAQ,OAAO,MAAM,SAAS,GAAG,QAAQ,SAAS;AAAA,WACpF;AAAA,QACH,OAAO,MAAM,cAAc,QAAQ,QAAQ,SAAS;AAAA;AAAA,IAExD,OAAO,OAAO;AAAA,IACd,UAAU;AAAA,IACV,MAAM;AAAA;AAAA;AAIV,IAAM,aAAa,CAAC,UAA0B,IAAI,YAAY,EAAE,OAAO,KAAK,EAAE;AAE9E,IAAM,gBAAgB,CAAC,QAAyB;AAAA,EAC9C,IAAI;AAAA,IACF,QAAQ,KAAK,CAAC,KAAK,CAAC;AAAA,IACpB,OAAO;AAAA,IACP,OAAO,OAAO;AAAA,IACd,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,MAAM,SAAS,SAAS;AAAA,MAC5F,OAAO;AAAA,IACT;AAAA,IACA,MAAM;AAAA;AAAA;AAIV,IAAM,sBAAsB,OAAO,KAAa,cAAwC;AAAA,EACtF,MAAM,WAAW,KAAK,IAAI,IAAI;AAAA,EAC9B,OAAO,cAAc,GAAG,GAAG;AAAA,IACzB,IAAI,KAAK,IAAI,KAAK,UAAU;AAAA,MAC1B,OAAO;AAAA,IACT;AAAA,IACA,MAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,EAAE,CAAC;AAAA,EACxD;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,uBAAuB,CAAC,QAC5B,IAAI,QAAQ,CAAC,YAAY;AAAA,EACvB,MAAM,aAAa,QAAQ,IAAI,cAAc;AAAA,EAC7C,SACE,KAAK,YAAY,YAAY,cAAc,GAC3C,CAAC,QAAQ,OAAO,GAAG,GAAG,MAAM,IAAI,GAChC,EAAE,aAAa,KAAK,GACpB,MAAM,QAAQ,CAChB;AAAA,CACD;AAEH,IAAM,uBAAuB,OAAO,QAA+B;AAAA,EACjE,IAAI,SAAS,MAAM,SAAS;AAAA,IAC1B,MAAM,qBAAqB,GAAG;AAAA,IAC9B;AAAA,EACF;AAAA,EACA,IAAI;AAAA,IACF,QAAQ,KAAK,CAAC,KAAK,SAAS;AAAA,IAC5B,OAAO,OAAO;AAAA,IACd,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,MAAM,SAAS,SAAS;AAAA,MAC5F;AAAA,IACF;AAAA,IACA,MAAM;AAAA;AAAA,EAER,IAAI,MAAM,oBAAoB,KAAK,IAAK,GAAG;AAAA,IACzC;AAAA,EACF;AAAA,EACA,QAAQ,KAAK,CAAC,KAAK,SAAS;AAAA,EAC5B,MAAM,oBAAoB,KAAK,IAAK;AAAA;AAG/B,IAAM,MAAM,CAAC,YAClB,QAAO,WAAW;AAAA,EAChB,KAAK,OAAO,WAAW;AAAA,IACrB,MAAM,aAAa,eAAe,YAAY,QAAQ,SAAS;AAAA,IAC/D,IAAI,eAAe,WAAW;AAAA,MAC5B,MAAM,IAAI,yBAAyB;AAAA,QACjC,UAAU,QAAQ;AAAA,QAClB,SAAS,GAAG,YAAY,QAAQ;AAAA,MAClC,CAAC;AAAA,IACH;AAAA,IACA,MAAM,WAAW,MAAM,eAAe,OAAO;AAAA,IAC7C,IAAI;AAAA,MACF,MAAM,QAAQ,cAAc;AAAA,MAC5B,YAAY,cAAc,SAAS;AAAA,MACnC,MAAM,QAAQ,MAAM,YAAY,YAAY;AAAA,QAC1C,KAAK,QAAQ;AAAA,QACb,KAAK;AAAA,aACA,oBAAoB;AAAA,UACvB,iBAAiB,QAAQ;AAAA,UACzB,kBAAkB,QAAQ;AAAA,aACtB,QAAQ,WAAW,YAAY,CAAC,IAAI,EAAE,gBAAgB,QAAQ,OAAO;AAAA,QAC3E;AAAA,QACA,UAAU,SAAS,MAAM;AAAA,QACzB,OAAO,CAAC,QAAQ,QAAQ,MAAM;AAAA,MAChC,CAAC;AAAA,MACD,MAAM,SAAS,IAAI,QAAgB,CAAC,SAAS,WAAW;AAAA,QACtD,MAAM,KAAK,SAAS,MAAM;AAAA,QAC1B,MAAM,KAAK,QAAQ,CAAC,SAAS,QAAQ,QAAQ,CAAC,CAAC;AAAA,OAChD;AAAA,MACD,IAAI;AAAA,MACJ,MAAM,YAAY,MAAY;AAAA,QAC5B,IAAI,MAAM,QAAQ,aAAa,gBAAgB,WAAW;AAAA,UACxD;AAAA,QACF;AAAA,QACA,cAAc,qBAAqB,MAAM,GAAG,EAAE,MAAM,MAAG;AAAA,UAAG;AAAA,SAAS;AAAA;AAAA,MAErE,OAAO,iBAAiB,SAAS,WAAW,EAAE,MAAM,KAAK,CAAC;AAAA,MAC1D,IAAI,OAAO,SAAS;AAAA,QAClB,UAAU;AAAA,MACZ;AAAA,MACA,MAAM,MAAM,IAAI,SAAS,KAAK;AAAA,MAE9B,IAAI;AAAA,QACF,OAAO,QAAQ,QAAQ,YAAY,MAAM,QAAQ,IAAI;AAAA,UACnD,MAAM,SAAS,MAAM,QAAQ,SAAS;AAAA,UACtC,YAAY,MAAM,QAAQ,KAAK,IAAI;AAAA,UACnC;AAAA,QACF,CAAC;AAAA,QACD,IAAI,aAAa,GAAG;AAAA,UAClB,MAAM,IAAI,iBAAiB;AAAA,YACzB,UAAU,QAAQ;AAAA,YAClB,SAAS,eAAe,YAAY,QAAQ,WAAW,QAAQ,QAAQ;AAAA,YACvE;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,IAAI,WAAW,OAAO,MAAM,IAAI,QAAS;AAAA,UACvC,MAAM,IAAI,iBAAiB;AAAA,YACzB,UAAU,QAAQ;AAAA,YAClB,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,QACA,IAAI,OAAO,cAAc,aAAa,WAAW,OAAO,SAAS,IAAI,MAAO;AAAA,UAC1E,MAAM,IAAI,iBAAiB;AAAA,YACzB,UAAU,QAAQ;AAAA,YAClB,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,QACA,OAAO;AAAA,gBACP;AAAA,QACA,OAAO,oBAAoB,SAAS,SAAS;AAAA,QAC7C,IAAI,MAAM,aAAa,MAAM;AAAA,UAC3B,UAAU;AAAA,UACV,MAAM,OAAO,MAAM,MAAG;AAAA,YAAG;AAAA,WAAS;AAAA,QACpC;AAAA,QACA,MAAM;AAAA;AAAA,cAER;AAAA,MACA,MAAM,SAAS,QAAQ;AAAA;AAAA;AAAA,EAG3B,OAAO,CAAC,UAAU;AAAA,IAChB,IAAI,iBAAiB,4BAA4B,iBAAiB,kBAAkB;AAAA,MAClF,OAAO;AAAA,IACT;AAAA,IACA,OAAO,IAAI,iBAAiB;AAAA,MAC1B,UAAU,QAAQ;AAAA,MAClB,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,MAAM,GAAG,KAAM;AAAA,IACnF,CAAC;AAAA;AAEL,CAAC;;;AD/iBH,mBAAS,mBAAQ;AACjB,mBAAS,kBAAQ,oBAAO,mBAAU,oBAAM;AACxC,oBAAS;AACT,oBAAS,kBAAS,kBAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEhBxB;AACA,mBAAS,mBAAQ;AACjB,0BAAiB,wDAA0C;AAC3D,oBAAS,gCAAmB;AAC5B,0BAAkB;AAElB,IAAM,gBAAgB,QAAO,MAAM,QAAO,cAAc,EAAE,MAAM,QAAO,YAAY,EAAE,CAAC;AACtF,IAAM,eAAe,QAAO,MAAM,QAAQ,EACvC,MAAM,QAAO,YAAY,CAAC,CAAC,EAC3B,MAAM,QAAO,YAAY,SAAS,SAAS,MAAM,CAAC;AACrD,IAAM,UAAU,QAAO,SAAS,CAAC,aAAa,mBAAmB,oBAAoB,CAAC;AAE/E,IAAM,sBAAsB,QAAO,OAAO;AAAA,EAC/C,SAAS,QAAO,QAAQ,CAAC;AAAA,EACzB,UAAU,QAAO;AAAA,EACjB,UAAU;AAAA,EACV,YAAY,QAAO;AAAA,EACnB,YAAY;AAAA,EACZ,aAAa,QAAO,YAAY,QAAO,cAAc;AAAA,EACrD,aAAa,QAAO,YAAY,QAAO,cAAc;AAAA,EACrD,WAAW,QAAO,YAAY,YAAY;AAAA,EAC1C,OAAO,QAAO,YAAY,QAAO,cAAc;AAAA,EAC/C,SAAS,QAAO,YAAY,OAAO;AAAA,EACnC,aAAa,QAAO,YAAY,QAAO,cAAc;AACvD,CAAC;AAGM,IAAM,sBAAsB,QAAO,OAAO;AAAA,EAC/C,UAAU,QAAO;AAAA,EACjB,OAAO,QAAO;AAAA,EACd,aAAa,QAAO,YAAY,QAAO,MAAM;AAAA,EAC7C,WAAW,QAAO,YAAY,QAAO,MAAM;AAC7C,CAAC;AAGM,IAAM,sBAAsB,QAAO,OAAO;AAAA,EAC/C,UAAU,QAAO;AAAA,EACjB,OAAO,QAAO;AAAA,EACd,IAAI;AAAA,EACJ,MAAM,QAAO;AAAA,EACb,YAAY;AAAA,EACZ,WAAW,QAAO,YAAY,YAAY;AAAA,EAC1C,OAAO,QAAO,YAAY,QAAO,cAAc;AAAA,EAC/C,SAAS,QAAO,YAAY,OAAO;AAAA,EACnC,aAAa,QAAO,YAAY,QAAO,cAAc;AACvD,CAAC;AAGD,IAAM,yBAAyB,MAAc;AAAA,EAC3C,IAAI,UAAS,MAAM,SAAS;AAAA,IAC1B,OAAO,MAAK,QAAQ,IAAI,WAAW,MAAK,SAAQ,GAAG,WAAW,SAAS,GAAG,QAAQ;AAAA,EACpF;AAAA,EACA,IAAI,UAAS,MAAM,UAAU;AAAA,IAC3B,OAAO,MAAK,SAAQ,GAAG,WAAW,uBAAuB,QAAQ;AAAA,EACnE;AAAA,EACA,OAAO,MAAK,QAAQ,IAAI,mBAAmB,MAAK,SAAQ,GAAG,SAAS,GAAG,QAAQ;AAAA;AAGjF,IAAM,4BAA4B,MAAc;AAAA,EAC9C,IAAI,UAAS,MAAM,SAAS;AAAA,IAC1B,OAAO,MAAK,QAAQ,IAAI,gBAAgB,MAAK,SAAQ,GAAG,WAAW,OAAO,GAAG,QAAQ;AAAA,EACvF;AAAA,EACA,IAAI,UAAS,MAAM,UAAU;AAAA,IAC3B,OAAO,MAAK,SAAQ,GAAG,WAAW,uBAAuB,UAAU,OAAO;AAAA,EAC5E;AAAA,EACA,OAAO,MAAK,QAAQ,IAAI,iBAAiB,MAAK,SAAQ,GAAG,UAAU,OAAO,GAAG,QAAQ;AAAA;AAGhF,IAAM,qBAAqB,MAChC,QAAQ,QAAQ,IAAI,mBAAmB,0BAA0B,CAAC;AAE7D,IAAM,oBAAoB,MAC/B,QAAQ,QAAQ,IAAI,iBAAiB,MAAK,uBAAuB,GAAG,aAAa,CAAC;AAE7E,IAAM,oBAAoB,CAAC,UAA0B;AAAA,EAC1D,MAAM,MAAM,IAAI,IAAI,KAAK;AAAA,EACzB,IAAI,IAAI,aAAa,WAAW,IAAI,aAAa,UAAU;AAAA,IACzD,MAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AAAA,EACA,IACE,IAAI,SAAS,SAAS,KACtB,IAAI,SAAS,SAAS,KACtB,IAAI,OAAO,SAAS,KACpB,IAAI,KAAK,SAAS,GAClB;AAAA,IACA,MAAM,IAAI,MAAM,8DAA8D;AAAA,EAChF;AAAA,EACA,IAAI,IAAI,aAAa,OAAO,IAAI,aAAa,IAAI;AAAA,IAC/C,MAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AAAA,EACA,IAAI,WAAW;AAAA,EACf,OAAO,IAAI,SAAS,EAAE,QAAQ,OAAO,EAAE;AAAA;AAGlC,IAAM,kBAAkB,CAC7B,eACA,kBAEA,QAAO,WAAW;AAAA,EAChB,KAAK,YAAY;AAAA,IACf,MAAM,SACJ,kBAAkB,YACd,cACG,MAAM,GAAG,EACT,IAAI,CAAC,cAAc,UAAU,KAAK,CAAC,EACnC,OAAO,CAAC,cAAc,UAAU,SAAS,CAAC,IAC7C,QAAO,kBAAkB,aAAa,EAAE,KAAK,MAAM,aAAa,CAAC;AAAA,IACvE,MAAM,YAAY,MAAM,QAAQ,IAAI,OAAO,IAAI,CAAC,cAAc,SAAS,QAAQ,SAAS,CAAC,CAAC,CAAC;AAAA,IAC3F,OAAO,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC;AAAA;AAAA,EAE/B,OAAO,CAAC,UACN,IAAI,MACF,iFAAiF,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GACxI;AACJ,CAAC;AAEI,IAAM,iBAAiB,CAAC,UAC7B,QAAO,kBAAkB,YAAY,EAAE;AAAA,EACrC,GAAG,IAAI,IACL,MACG,MAAM,GAAG,EACT,IAAI,CAAC,aAAa,SAAS,KAAK,CAAC,EACjC,OAAO,OAAO,CACnB;AACF,CAAC;AAEI,IAAM,0BAA0B,YAAsD;AAAA,EAC3F,MAAM,OAAO,kBAAkB;AAAA,EAC/B,IACE,CAAE,MAAM,OAAO,IAAI,EAChB,KAAK,MAAM,IAAI,EACf,MAAM,MAAM,KAAK,GACpB;AAAA,IACA;AAAA,EACF;AAAA,EACA,IAAI,UAAS,MAAM,SAAS;AAAA,IAC1B,MAAM,OAAM,MAAM,GAAK;AAAA,EACzB;AAAA,EACA,IAAI;AAAA,IACF,OAAO,QAAO,kBAAkB,mBAAmB,EAAE,KAAK,MAAM,MAAM,SAAS,MAAM,MAAM,CAAC,CAAC;AAAA,IAC7F,OAAO,OAAO;AAAA,IACd,MAAM,IAAI,MAAM,mCAAmC,SAAS,OAAO,KAAK,GAAG;AAAA;AAAA;AAIxE,IAAM,2BAA2B,OACtC,kBACkB;AAAA,EAClB,MAAM,OAAO,kBAAkB;AAAA,EAC/B,MAAM,YAAY,QAAQ,IAAI;AAAA,EAC9B,MAAM,YAAY,GAAG,QAAQ,QAAQ;AAAA,EACrC,MAAM,MAAM,WAAW,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAAA,EACvD,IAAI,UAAS,MAAM,SAAS;AAAA,IAC1B,MAAM,OAAM,WAAW,GAAK;AAAA,EAC9B;AAAA,EACA,MAAM,WAAU,WAAW,GAAG,KAAK,UAAU,eAAe,MAAM,CAAC;AAAA,GAAO,EAAE,MAAM,IAAM,CAAC;AAAA,EACzF,MAAM,OAAO,WAAW,IAAI;AAAA,EAC5B,IAAI,UAAS,MAAM,SAAS;AAAA,IAC1B,MAAM,OAAM,MAAM,GAAK;AAAA,EACzB;AAAA;AAGK,IAAM,sBAAsB,CACjC,eACA,aACqE;AAAA,EACrE,IAAI,eAAe,aAAa,kBAAkB,QAAQ,GAAG;AAAA,IAC3D,OAAO,CAAC;AAAA,EACV;AAAA,EACA,OAAO;AAAA,OACD,cAAc,gBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,cAAc,YAAY;AAAA,OACxF,cAAc,gBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,cAAc,YAAY;AAAA,EAC9F;AAAA;AAGK,IAAM,0BAA0B,OAAO,UAOV;AAAA,EAClC,MAAM,WAAW,MAAM,wBAAwB;AAAA,EAC/C,MAAM,WAAW,kBAAkB,MAAM,QAAQ;AAAA,EACjD,MAAM,sBAAsB,oBAAoB,UAAU,QAAQ;AAAA,EAClE,MAAM,sBACJ,MAAM,eAAe,YAChB,UAAU,cAAc,CAAC,IAC1B,MAAM,QAAO,WAAW,gBAAgB,IAAI,KAAK,UAAU,MAAM,UAAU,CAAC,CAAC;AAAA,EACnF,MAAM,cAAc,MAAM,eAAe,oBAAoB;AAAA,EAC7D,MAAM,cAAc,MAAM,eAAe,oBAAoB;AAAA,EAC7D,MAAM,YACJ,MAAM,cAAc,SAAS,YAAa,MAAM,aAAa,UAAU;AAAA,EACzE,OAAO,oBAAoB,KAAK;AAAA,IAC9B,SAAS;AAAA,IACT;AAAA,IACA,UAAU,UAAU,YAAY,aAAa;AAAA,IAC7C,YAAY,MAAM,cAAc,UAAU,cAAc,SAAS;AAAA,IACjE,YAAY;AAAA,OACR,gBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY;AAAA,OAC/C,gBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY;AAAA,OAC/C,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU;AAAA,OAC3C,UAAU,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO,SAAS,MAAM;AAAA,OAC7D,UAAU,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,SAAS,QAAQ;AAAA,OACnE,UAAU,gBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,SAAS,YAAY;AAAA,EACrF,CAAC;AAAA;AAGH,IAAM,wBAAwB,OAC5B,WACmC;AAAA,EACnC,MAAM,OAAO,QAAQ,IAAI;AAAA,EACzB,MAAM,OAAO,QAAQ,IAAI;AAAA,EACzB,IAAI,SAAS,aAAa,SAAS,WAAW;AAAA,IAC5C,OAAO,QAAQ,cAAc,CAAC;AAAA,EAChC;AAAA,EACA,OAAO,QAAO,WAAW,gBAAgB,QAAQ,IAAI,IAAI,CAAC;AAAA;AAG5D,IAAM,sBAAsB,MAC1B,QAAQ,IAAI,gBAAgB,QAAQ,IAAI;AAE1C,IAAM,qBAAqB,MAAsC;AAAA,EAC/D,MAAM,QAAQ,QAAQ,IAAI,kBAAkB,QAAQ,IAAI;AAAA,EACxD,OAAO,UAAU,YAAY,YAAY,QAAO,kBAAkB,OAAO,EAAE,KAAK;AAAA;AAGlF,IAAM,uBAAuB,CAC3B,WAC4C;AAAA,EAC5C,MAAM,QAAQ,QAAQ,IAAI;AAAA,EAC1B,OAAO,UAAU,YACb,QAAQ,YACR,UAAU,SACR,YACA,eAAe,KAAK;AAAA;AAG5B,IAAM,mBAAmB,YAA0C;AAAA,EACjE,MAAM,SAAS,MAAM,wBAAwB;AAAA,EAC7C,OACE,UACA,oBAAoB,KAAK;AAAA,IACvB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU,aAAa;AAAA,IACvB,YAAY,SAAS;AAAA,IACrB,YAAY,CAAC;AAAA,EACf,CAAC;AAAA;AAIE,IAAM,0BAA0B,QAAO,WAAW;AAAA,EACvD,KAAK,YAAY;AAAA,IACf,MAAM,SAAS,MAAM,iBAAiB;AAAA,IACtC,MAAM,WAAW,kBAAkB,QAAQ,IAAI,oBAAoB,OAAO,QAAQ;AAAA,IAClF,MAAM,QACJ,QAAQ,IAAI,uBAAuB,oBAAoB,QAAQ,QAAQ,EAAE;AAAA,IAC3E,IAAI,UAAU,WAAW;AAAA,MACvB,MAAM,IAAI,MACR,iGACF;AAAA,IACF;AAAA,IACA,OAAO,oBAAoB,KAAK;AAAA,MAC9B;AAAA,MACA;AAAA,SACI,QAAQ,IAAI,qBAAqB,YACjC,CAAC,IACD,EAAE,aAAa,QAAQ,IAAI,iBAAiB;AAAA,SAC5C,QAAQ,IAAI,mBAAmB,YAC/B,CAAC,IACD,EAAE,WAAW,QAAQ,IAAI,eAAe;AAAA,IAC9C,CAAC;AAAA;AAAA,EAEH,OAAO,CAAC,UAAW,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAC7E,CAAC;AAEM,IAAM,yBAAyB,QAAO,WAAW;AAAA,EACtD,KAAK,YAAY;AAAA,IACf,MAAM,SAAS,MAAM,iBAAiB;AAAA,IACtC,MAAM,iBAAiB,MAAK,mBAAmB,GAAG,aAAa;AAAA,IAC/D,MAAM,QACJ,QAAQ,IAAI,gBACX,MAAM,SAAS,gBAAgB,MAAM,EACnC,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,EAC5B,MAAM,MAAG;AAAA,MAAG;AAAA,KAAS;AAAA,IAC1B,IAAI,UAAU,aAAa,MAAM,WAAW,GAAG;AAAA,MAC7C,MAAM,IAAI,MACR,8EACF;AAAA,IACF;AAAA,IACA,IAAI,MAAM,SAAS,IAAI;AAAA,MACrB,MAAM,IAAI,MAAM,6DAA6D;AAAA,IAC/E;AAAA,IACA,OAAO,oBAAoB,KAAK;AAAA,MAC9B,UAAU,kBAAkB,QAAQ,IAAI,oBAAoB,OAAO,QAAQ;AAAA,MAC3E;AAAA,IACF,CAAC;AAAA;AAAA,EAEH,OAAO,CAAC,UAAW,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAC7E,CAAC;AAEM,IAAM,0BAA0B,QAAO,WAAW;AAAA,EACvD,KAAK,YAAY;AAAA,IACf,MAAM,SAAS,MAAM,iBAAiB;AAAA,IACtC,MAAM,WAAW,kBAAkB,QAAQ,IAAI,oBAAoB,OAAO,QAAQ;AAAA,IAClF,MAAM,QACJ,QAAQ,IAAI,uBAAuB,oBAAoB,QAAQ,QAAQ,EAAE;AAAA,IAC3E,IAAI,UAAU,WAAW;AAAA,MACvB,MAAM,IAAI,MACR,iGACF;AAAA,IACF;AAAA,IACA,MAAM,aAAa,MAAM,sBAAsB,MAAM;AAAA,IACrD,IAAI,WAAW,WAAW,GAAG;AAAA,MAC3B,MAAM,IAAI,MAAM,0CAA0C;AAAA,IAC5D;AAAA,IACA,MAAM,QAAQ,oBAAoB,KAAK,OAAO;AAAA,IAC9C,MAAM,UAAU,mBAAmB,KAAK,OAAO;AAAA,IAC/C,MAAM,YAAY,qBAAqB,MAAM;AAAA,IAC7C,MAAM,cAAc,QAAQ,IAAI,uBAAuB,OAAO;AAAA,IAC9D,OAAO,oBAAoB,KAAK;AAAA,MAC9B;AAAA,MACA;AAAA,MACA,IACE,QAAQ,IAAI,qBAAqB,YAC7B,OAAO,WACP,SAAS,KAAK,QAAQ,IAAI,gBAAgB;AAAA,MAChD,MAAM,QAAQ,IAAI,sBAAsB,OAAO;AAAA,MAC/C;AAAA,SACI,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU;AAAA,SAC3C,UAAU,YAAY,CAAC,IAAI,EAAE,MAAM;AAAA,SACnC,YAAY,YAAY,CAAC,IAAI,EAAE,QAAQ;AAAA,SACvC,gBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,QAAQ,WAAW,EAAE;AAAA,IAC3E,CAAC;AAAA;AAAA,EAEH,OAAO,CAAC,UAAW,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAC7E,CAAC;AAEM,IAAM,iBAAiB,SAAS;;;ACnVvC;AAeA,mBAAS,6BAAkB;AAAA;AAGpB,MAAM,6BAA6B,QAAO,iBAAuC,EACtF,+BACA,EAAE,SAAS,QAAO,QAAQ,SAAS,QAAO,MAAM,QAAO,MAAM,EAAE,CACjE,EAAE;AAAC;AAAA;AAEI,MAAM,6BAA6B,QAAO,iBAAuC,EACtF,+BACA,EAAE,SAAS,QAAO,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,CAC/D,EAAE;AAAC;AAYI,IAAM,aAAa,QAAO,OAAO;AAAA,EACtC,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,QAAQ,QAAO,YAAY,KAAK;AAAA,EAChC,QAAQ,QAAO,YAAY,QAAO,MAAM;AAAA,EACxC,OAAO,QAAO,YAAY,QAAO,MAAM;AACzC,CAAC;AAGD,IAAM,kBAAkB,CAAC,SAAgC,WAA0C;AAAA,EACjG,MAAM,QAAQ,OAAO,QAAQ,MAAM,EAAE;AAAA,EACrC,MAAM,aAAa,MAAM,YAAY;AAAA,EACrC,MAAM,OAAO,QAAQ,KAAK,CAAC,WAAW,OAAO,OAAO,KAAK;AAAA,EACzD,OAAO,SAAS,YACZ,QAAQ,OACN,CAAC,WACC,OAAO,KAAK,YAAY,MAAM,cAAc,OAAO,SAAS,YAAY,MAAM,UAClF,IACA,CAAC,IAAI;AAAA;AAGJ,IAAM,WAAW,CAAC,YACvB,QAAQ,QAAQ,CAAC,YACd,OAAO,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS;AAAA,EAChC,IAAI,IAAI;AAAA,EACR,MAAM,IAAI;AAAA,KACN,IAAI,gBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,IAAI,YAAY;AAAA,EACxE,WAAW,OAAO;AAAA,EAClB,aAAa,OAAO;AAAA,EACpB,QAAQ,OAAO;AAAA,EACf,QAAQ,IAAI,OAAO,MAAM,IAAI;AAC/B,EAAE,CACJ;AAEF,IAAM,eAAe,QAAO,GAAG,qBAAqB,EAAE,UAAU,CAC9D,SACA,QACA;AAAA,EACA,MAAM,QAAQ,OAAO,QAAQ,MAAM,EAAE;AAAA,EACrC,MAAM,YAAY,MAAM,QAAQ,GAAG;AAAA,EACnC,MAAM,YAAY,cAAc;AAAA,EAChC,MAAM,gBAAgB,gBAAgB,SAAS,YAAY,MAAM,MAAM,GAAG,SAAS,IAAI,KAAK;AAAA,EAC5F,MAAM,WAAW,YAAY,MAAM,MAAM,YAAY,CAAC,IAAI;AAAA,EAC1D,MAAM,OAAO,SAAS,YAAY,gBAAgB,OAAO;AAAA,EACzD,MAAM,WAAW,KAAK,OAAO,CAAC,QAAQ,IAAI,OAAO,QAAQ;AAAA,EACzD,MAAM,aACJ,SAAS,SAAS,IACd,WACA,KAAK,OAAO,CAAC,QAAQ,IAAI,KAAK,YAAY,MAAM,SAAS,YAAY,CAAC;AAAA,EAE5E,MAAM,cAAc,YAAY,YAAY,cAAc,KAAK,CAAC,WAAW,OAAO,OAAO,KAAK;AAAA,EAC9F,IAAI,gBAAgB;AAAA,IAAW,OAAO,EAAE,UAAU,YAAY,IAAI,OAAO,UAAU;AAAA,EACnF,MAAM,UAAU;AAAA,IACd,GAAI,YACA,CAAC,IACD,cAAc,IAAI,CAAC,YAAY,EAAE,UAAU,OAAO,IAAI,OAAO,UAAU,EAAE;AAAA,IAC7E,GAAG,WAAW,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,WAAW,OAAO,IAAI,GAAG,EAAE;AAAA,EACzE;AAAA,EACA,MAAM,WAAW,QAAQ;AAAA,EACzB,IAAI,QAAQ,WAAW,KAAK,aAAa;AAAA,IAAW,OAAO;AAAA,EAC3D,OAAO,OAAO,IAAI,qBAAqB;AAAA,IACrC,SACE,QAAQ,WAAW,IACf,mCAAmC,8CACnC,GAAG;AAAA,IACT,SAAS;AAAA,MACP,GAAG,cAAc,IAAI,CAAC,WAAW,GAAG,OAAO,UAAU,OAAO,KAAK;AAAA,MACjE,GAAG,WAAW,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,IAAI,gBAAgB,IAAI,SAAS;AAAA,IAChF;AAAA,EACF,CAAC;AAAA,CACF;AAEM,IAAM,aAAa,CAAC,SACzB,WAAW,KAAK;AAAA,EACd,SAAS,KAAK;AAAA,EACd,WAAW,KAAK;AAAA,EAChB,QAAQ,KAAK;AAAA,EACb,UAAU,KAAK;AAAA,EACf,kBAAkB,KAAK;AAAA,KACnB,KAAK,UAAU,YAAY,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM;AAAA,KACrD,KAAK,WAAW,YAAY,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO;AAAA,KACvD,KAAK,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM;AAC1D,CAAC;AAEI,IAAM,mBAAmB,QAAO,GAAG,yBAAyB,EAAE,UAAU,CAC7E,QACA,eACA,SACA;AAAA,EACA,MAAM,UAAU,OAAO,OAAO,QAAQ;AAAA,EACtC,IAAI,QAAQ,WAAW,GAAG;AAAA,IACxB,OAAO,OAAO,IAAI,qBAAqB;AAAA,MACrC,SAAS;AAAA,MACT,SAAS,CAAC;AAAA,IACZ,CAAC;AAAA,EACH;AAAA,EACA,IAAI,SACF,QAAQ,WAAW,YAAY,YAAY,OAAO,aAAa,SAAS,QAAQ,MAAM;AAAA,EACxF,IACE,WAAW,aACX,QAAQ,aAAa,aACrB,QAAQ,aAAa,aACrB,QAAQ,iBAAiB,aACzB,cAAc,cAAc,WAC5B;AAAA,IACA,MAAM,UAAU,OAAO,OAAO,cAAc,QAAQ,QAAQ;AAAA,IAC5D,MAAM,WAAW,QAAQ,MAAM,SAAS,CAAC,SAAS,KAAK,iBAAiB,SAAS;AAAA,IACjF,IAAI,aAAa,aAAa,QAAQ,WAAW;AAAA,MAC/C,OAAO,OAAO,IAAI,qBAAqB;AAAA,QACrC,SAAS;AAAA,QACT,SAAS,CAAC;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,IACA,IAAI,UAAU,aAAa,cAAc,SAAS,UAAU,WAAW;AAAA,MACrE,SAAS,OAAO,aAAa,SAAS,IAAI,SAAS,kBAAkB,SAAS,OAAO;AAAA,IACvF;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,QAAQ;AAAA,EACtB,IAAI,UAAU,aAAa,QAAQ,aAAa,aAAa,QAAQ,aAAa,YAAY;AAAA,IAC5F,OAAO,OAAO,IAAI,qBAAqB;AAAA,MACrC,SAAS,gDAAgD,QAAQ;AAAA,MACjE,SAAS,CAAC;AAAA,IACZ,CAAC;AAAA,EACH;AAAA,EACA,IAAI,UAAU,aAAa,QAAQ,aAAa,YAAY;AAAA,IAC1D,OAAO,OAAO,IAAI,qBAAqB;AAAA,MACrC,SAAS;AAAA,MACT,SAAS,CAAC;AAAA,IACZ,CAAC;AAAA,EACH;AAAA,EACA,MAAM,WAAW,UAAU,YAAY,QAAQ,WAAW;AAAA,EAC1D,MAAM,kBAAkB,cAAc;AAAA,EACtC,MAAM,eACJ,QAAQ,iBACP,cAAc,cAAc,YACzB,YACA,OAAO,QAAO,oBAAoB,MAAM,EAAE,cAAc,SAAS;AAAA,EACvE,OAAO,OAAO,OAAO,WAAW;AAAA,IAC9B,QAAQ,QAAQ;AAAA,OACZ,WAAW,YAAY,CAAC,IAAI,EAAE,gBAAgB,OAAO,SAAS;AAAA,OAC9D,UAAU,YAAY,CAAC,IAAI,EAAE,MAAM;AAAA,OACnC,QAAQ,aAAa,YACrB,EAAE,UAAU,QAAQ,SAAS,IAC7B,oBAAoB,YAClB,CAAC,IACD,EAAE,UAAU,SAAS,KAAK,eAAe,EAAE;AAAA,OAC7C,QAAQ,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,QAAQ,QAAQ;AAAA,OAChE,QAAQ,cAAc,YAAY,CAAC,IAAI,EAAE,WAAW,QAAQ,UAAU;AAAA,OACtE,aAAa,YAAY,CAAC,IAAI,EAAE,SAAS;AAAA,OACzC,iBAAiB,YAAY,CAAC,IAAI,EAAE,aAAa;AAAA,EACvD,CAAC;AAAA,CACF;AAEM,IAAM,cAAc,QAAO,GAAG,oBAAoB,EAAE,UAAU,CACnE,QACA,SACA,gBACA;AAAA,EACA,MAAM,WAAW,KAAK,IAAI,IAAI,iBAAiB;AAAA,EAC/C,IAAI,OAAO;AAAA,EACX,OAAO,CAAC,eAAe,IAAI,GAAG;AAAA,IAC5B,IAAI,KAAK,IAAI,KAAK,UAAU;AAAA,MAC1B,OAAO,OAAO,IAAI,qBAAqB;AAAA,QACrC,SAAS,QAAQ,KAAK,eAAe,KAAK,gBAAgB;AAAA,QAC1D,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IACA,OAAO,QAAO,MAAM,UAAU;AAAA,IAC9B,OAAO,OAAO,OAAO,QAAQ,KAAK,EAAE;AAAA,EACtC;AAAA,EACA,OAAO;AAAA,CACR;AAEM,IAAM,kBAAkB,QAAO,GAAG,wBAAwB,EAAE,UAAU,CAC3E,QACA,QACA,SACA;AAAA,EACA,IAAI;AAAA,EACJ,MAAM,OAAO,OAAO,UAAU,MAAM,EAAE,KACpC,QAAO,IAAI,CAAC,UAAU;AAAA,IACpB,MAAM,SAAS,MAAM,OAAO,GAAG,EAAE;AAAA,IACjC,MAAM,eAAe,GAAG,MAAM,UAAU,QAAQ,QAAQ,UAAU,QAAQ,MAAM;AAAA,IAChF,IAAI,iBAAiB,UAAU;AAAA,MAC7B,OAAO,QAAO,QAAQ,SAAS;AAAA,IACjC;AAAA,IACA,WAAW;AAAA,IACX,OAAO,QAAO,KAAK,MAAM,QAAQ,KAAK,CAAC;AAAA,GACxC,CACH;AAAA,EACA,OAAO,OAAO,KAAK,KACjB,QAAO,OAAO;AAAA,IACZ,OAAO,CAAC,UAAU,qBAAqB,IAAI,MAAM,MAAM;AAAA,IACvD,UAAU,SAAS,OAAO,UAAU;AAAA,EACtC,CAAC,CACH;AAAA,CACD;AAEM,IAAM,gBAAgB,QAAO,GAAG,sBAAsB,EAAE,UAAU,CACvE,QACA,UACA;AAAA,EACA,OAAO,OAAO,OAAO,cAAc,QAAQ;AAAA,CAC5C;;;ACpPM,IAAM,iBAAiB,CAAC,SAAgC,kBAA0B;AAAA,EACvF,eAAe;AAAA,EACf,SAAS,QAAQ,OAAO,CAAC,WAAW,OAAO,YAAY,YAAY,EAAE;AAAA,EACrE,WAAW,QAAQ,OAAO,CAAC,WAAW,OAAO,YAAY,YAAY,EAAE;AAAA,EACvE,SAAS,QAAQ,IAAI,CAAC,YAAY;AAAA,IAChC,IAAI,OAAO;AAAA,IACX,MAAM,OAAO;AAAA,IACb,QAAQ,OAAO;AAAA,IACf,SAAS,OAAO;AAAA,IAChB,SAAS,OAAO,YAAY;AAAA,EAC9B,EAAE;AACJ;AAEO,IAAM,kBAAkB,CAAC,SAAgC,iBAAyB;AAAA,EACvF,MAAM,YAAY,QAAQ,IAAI,CAAC,WAAW;AAAA,IACxC,MAAM,WAAW;AAAA,MACf,GAAI,OAAO,WAAW,YAAY,CAAC,mBAAmB,IAAI,CAAC;AAAA,MAC3D,GAAI,OAAO,UAAU,WAAW,IAAI,CAAC,qCAAqC,IAAI,CAAC;AAAA,MAC/E,GAAI,OAAO,YAAY,eACnB,CAAC,IACD,CAAC,kBAAkB,OAAO,yBAAyB,cAAc;AAAA,IACvE;AAAA,IACA,OAAO;AAAA,MACL,IAAI,OAAO;AAAA,MACX,MAAM,OAAO;AAAA,MACb,UAAU,OAAO;AAAA,MACjB,UAAU,OAAO;AAAA,MACjB,cAAc,OAAO;AAAA,MACrB,QAAQ,OAAO;AAAA,MACf,SAAS,OAAO;AAAA,MAChB,WAAW,OAAO;AAAA,MAClB,YAAY,OAAO,WAAW,IAAI,CAAC,cAAc,UAAU,IAAI;AAAA,MAC/D,cAAc,OAAO;AAAA,MACrB;AAAA,IACF;AAAA,GACD;AAAA,EACD,OAAO;AAAA,IACL,SAAS,UAAU,SAAS,KAAK,UAAU,MAAM,CAAC,WAAW,OAAO,SAAS,WAAW,CAAC;AAAA,IACzF,OAAO,QAAQ;AAAA,IACf,QAAQ,QAAQ,OAAO,CAAC,WAAW,OAAO,WAAW,QAAQ,EAAE;AAAA,IAC/D,MAAM,QAAQ,OAAO,CAAC,WAAW,OAAO,WAAW,MAAM,EAAE;AAAA,IAC3D,SAAS,QAAQ,OAAO,CAAC,WAAW,OAAO,WAAW,SAAS,EAAE;AAAA,IACjE,UAAU,UAAU,WAAW,IAAI,CAAC,kCAAkC,IAAI,CAAC;AAAA,IAC3E,SAAS;AAAA,EACX;AAAA;;;AC9CF;AACA,mBAAS,qBAAQ,qBAAU;AAC3B,iBAAS;AACT;;;ACHA;AACA,mBAAS;AACT;AACA,kBAAS,uBAAa;AACtB,oBAAS,kBAAS;AAClB,qBAAS;AAGT,IAAM,kBAAkB,IAAI,KAAK,KAAK;AACtC,IAAM,UAAU,QAAO,OAAO;AAAA,EAC5B,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU,QAAO,IAAI,MAAM,QAAO,uBAAuB,CAAC,CAAC;AAC7D,CAAC;AACD,IAAM,WAAW,QAAO,OAAO,EAAE,QAAQ,OAAO,CAAC;AACjD,IAAM,QAAQ,QAAO,MAAM;AAAA,EACzB,QAAO,OAAO;AAAA,IACZ,QAAQ,QAAO,OAAO,MAAM,QAAO,YAAY,MAAO,CAAC;AAAA,IACvD,OAAO,QAAO,YAAY,QAAO,KAAK;AAAA,EACxC,CAAC;AAAA,EACD,QAAO,OAAO;AAAA,IACZ,OAAO,QAAO,eAAe,MAAM,QAAO,YAAY,KAAM,CAAC;AAAA,IAC7D,QAAQ,QAAO,YAAY,QAAO,KAAK;AAAA,EACzC,CAAC;AACH,CAAC;AAED,IAAM,UAAU,QAAO,OAAO;AAAA,EAC5B,QAAQ;AAAA,EACR,aAAa,QAAO,IAAI,MAAM,QAAO,uBAAuB,CAAC,CAAC;AAAA,EAC9D,OAAO;AACT,CAAC;AAED,IAAM,YAAY,CAAC,UACjB,iBAAiB,UAAS,UAAU,UAAS,MAAM,SAAS;AAC9D,IAAM,gBAAgB,CAAC,UACrB,iBAAiB,UAAS,UAAU,UAAS,MAAM,SAAS;AAE9D,IAAM,QAAQ,CAAC,WAAmB;AAAA,EAChC,MAAM,KAAK,QAAO,kBAAkB,MAAM,EAAE,MAAM;AAAA,EAClD,MAAM,YAAY,MAAK,SAAQ,kBAAkB,CAAC,GAAG,aAAa;AAAA,EAClE,OAAO;AAAA,IACL;AAAA,IACA,SAAS,MAAK,WAAW,GAAG,iBAAiB;AAAA,IAC7C,SAAS,MAAK,WAAW,GAAG,eAAe;AAAA,IAC3C,UAAU,MAAK,WAAW,GAAG,kBAAkB;AAAA,EACjD;AAAA;AAGF,IAAM,WAAW,OAAO,MAAc,UAAgD;AAAA,EACpF,MAAM,OAAO,MAAM,KAAK,MAAM,GAAG,EAAE,MAAM,CAAC,UAAmB;AAAA,IAC3D,IAAI,UAAU,KAAK;AAAA,MAAG;AAAA,IACtB,MAAM;AAAA,GACP;AAAA,EACD,IAAI,SAAS;AAAA,IAAW;AAAA,EACxB,IAAI;AAAA,IACF,MAAM,SAAS,OAAO,MAAM,QAAQ,CAAC;AAAA,IACrC,IAAI,OAAO;AAAA,IACX,OAAO,OAAO,OAAO,QAAQ;AAAA,MAC3B,QAAQ,cAAc,MAAM,KAAK,KAAK,QAAQ,MAAM,OAAO,SAAS,MAAM,IAAI;AAAA,MAC9E,IAAI,cAAc;AAAA,QAAG;AAAA,MACrB,QAAQ;AAAA,IACV;AAAA,IACA,IAAI,OAAO;AAAA,MAAO,MAAM,IAAI,MAAM,yCAAyC;AAAA,IAC3E,OAAO,KAAK,MAAM,OAAO,SAAS,GAAG,IAAI,EAAE,SAAS,MAAM,CAAC;AAAA,IAC3D,MAAM;AAAA,IACN,MAAM,IAAI,MAAM,gCAAgC;AAAA,YAChD;AAAA,IACA,MAAM,KAAK,MAAM;AAAA;AAAA;AAIrB,IAAM,eAAe,OAAO,WAAmB;AAAA,EAC7C,MAAM,QAAQ,MAAM,SAAS,MAAM,MAAM,EAAE,SAAS,IAAI;AAAA,EACxD,IAAI,UAAU;AAAA,IAAW;AAAA,EACzB,MAAM,UAAU,QAAO,oBAAoB,OAAO,EAAE,KAAK;AAAA,EACzD,IAAI,QAAQ,SAAS,aAAa,QAAQ,QAAQ,WAAW,QAAQ;AAAA,IACnE,MAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AAAA,EACA,OAAO,QAAQ;AAAA;AAGjB,IAAM,UAAU,OAAO,MAAc,UAAoC;AAAA,EACvE,MAAM,YAAY,GAAG,QAAQ,WAAW;AAAA,EACxC,MAAM,OAAO,MAAM,KAAK,WAAW,MAAM,GAAK;AAAA,EAC9C,IAAI;AAAA,IACF,IAAI;AAAA,MACF,MAAM,KAAK,UAAU,GAAG,KAAK,UAAU,KAAK;AAAA,GAAO,MAAM;AAAA,MACzD,MAAM,KAAK,KAAK;AAAA,cAChB;AAAA,MACA,MAAM,KAAK,MAAM;AAAA;AAAA,IAEnB,MAAM,KAAK,WAAW,IAAI;AAAA,IAC1B,IAAI,UAAS,MAAM,SAAS;AAAA,MAC1B,MAAM,YAAY,MAAM,KAAK,SAAQ,IAAI,GAAG,GAAG;AAAA,MAC/C,IAAI;AAAA,QACF,MAAM,UAAU,KAAK;AAAA,gBACrB;AAAA,QACA,MAAM,UAAU,MAAM;AAAA;AAAA,IAE1B;AAAA,IACA,OAAO;AAAA,IACP,OAAO,OAAO;AAAA,IACd,IAAI,cAAc,KAAK;AAAA,MAAG,OAAO;AAAA,IACjC,MAAM;AAAA,YACN;AAAA,IACA,MAAM,OAAO,SAAS;AAAA;AAAA;AAI1B,IAAM,aAAa,CAAC,UAAkB,IAAI,MAAM,WAAW,KAAK,OAAO;AAEhE,IAAM,kBAAkB,OAC7B,SACwE;AAAA,EACxE,IAAI,KAAK,aAAa,cAAc,KAAK,UAAU,WAAW;AAAA,IAC5D,MAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AAAA,EACA,MAAM,QAAQ,MAAM,KAAK,EAAE;AAAA,EAC3B,MAAM,OAAM,MAAM,WAAW,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAAA,EAC7D,MAAM,OAAM,MAAM,WAAW,GAAK;AAAA,EAClC,MAAM,UAAS,QAAQ,KAAK;AAAA,IAC1B,QAAQ,KAAK;AAAA,IACb,OAAO,KAAK;AAAA,IACZ,UAAU,KAAK;AAAA,IACf,UAAU,KAAK,IAAI,IAAI;AAAA,EACzB,CAAC;AAAA,EACD,MAAM,QAAQ,MAAM,SAAS,OAAM;AAAA,EACnC,MAAM,UAAU,MAAM,aAAa,KAAK,EAAE;AAAA,EAC1C,IAAI,YAAY,aAAa,QAAQ,UAAU,KAAK,SAAS,QAAQ,aAAa,KAAK,UAAU;AAAA,IAC/F,MAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AAAA,EACA,MAAM,WAAW,MAAM,SAAS,MAAM,UAAU,IAAI;AAAA,EACpD,IAAI,aAAa,WAAW;AAAA,IAC1B,MAAM,UAAU,QAAO,oBAAoB,QAAQ,EAAE,QAAQ;AAAA,IAC7D,IAAI,QAAQ,SAAS,aAAa,QAAQ,QAAQ,WAAW,KAAK,IAAI;AAAA,MACpE,MAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,UAAU,QAAQ;AAAA,IAClB,SAAS,iBAAiB,WAAW,kBAAkB,CAAC;AAAA,IACxD,YAAY,aAAa;AAAA,EAC3B;AAAA;AAGK,IAAM,mBAAmB,OAAO,WAAqC;AAAA,EAC1E,MAAM,UAAU,MAAM,aAAa,MAAM;AAAA,EACzC,IAAI,YAAY;AAAA,IAAW,MAAM,IAAI,MAAM,oCAAoC;AAAA,EAC/E,IAAI,KAAK,IAAI,KAAK,QAAQ;AAAA,IAAU,MAAM,IAAI,MAAM,gCAAgC;AAAA,EACpF,OAAO,QAAQ,MAAM,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;AAAA;AAG5C,IAAM,eAAe,OAAO,WAAkD;AAAA,EACnF,MAAM,UAAU,MAAM,aAAa,MAAM;AAAA,EACzC,IAAI,YAAY;AAAA,IAAW;AAAA,EAC3B,MAAM,QAAQ,MAAM,SAAS,MAAM,MAAM,EAAE,SAAS,OAAO,IAAI;AAAA,EAC/D,IAAI,UAAU;AAAA,IAAW;AAAA,EACzB,MAAM,UAAU,QAAO,oBAAoB,OAAO,EAAE,KAAK;AAAA,EACzD,IAAI,QAAQ,SAAS,aAAa,QAAQ,QAAQ,WAAW,QAAQ;AAAA,IACnE,MAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AAAA,EACA,IAAI,QAAQ,QAAQ,eAAe,QAAQ,UAAU;AAAA,IACnD,MAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AAAA,EACA,OAAO,QAAQ,QAAQ;AAAA;AAGlB,IAAM,gBAAgB,OAAO,QAAgB,UAAmC;AAAA,EACrF,MAAM,UAAU,QAAO,oBAAoB,KAAK,EAAE,KAAK;AAAA,EACvD,IAAI,QAAQ,SAAS,WAAW;AAAA,IAC9B,MAAM,IAAI,MACR,+FACF;AAAA,EACF;AAAA,EACA,MAAM,UAAU,MAAM,aAAa,MAAM;AAAA,EACzC,IAAI,YAAY;AAAA,IAAW,MAAM,IAAI,MAAM,oCAAoC;AAAA,EAC/E,MAAM,WAAW,MAAM,aAAa,MAAM;AAAA,EAC1C,IAAI,aAAa,WAAW;AAAA,IAC1B,IAAI,KAAK,UAAU,QAAQ,MAAM,KAAK,UAAU,QAAQ,OAAO;AAAA,MAAG;AAAA,IAClE,MAAM,IAAI,MAAM,4DAA4D;AAAA,EAC9E;AAAA,EACA,MAAM,cAAc,KAAK,IAAI;AAAA,EAC7B,IAAI,eAAe,QAAQ;AAAA,IAAU,MAAM,IAAI,MAAM,gCAAgC;AAAA,EACrF,IAAI,MAAM,QAAQ,MAAM,MAAM,EAAE,SAAS,EAAE,QAAQ,aAAa,OAAO,QAAQ,QAAQ,CAAC;AAAA,IAAG;AAAA,EAC3F,MAAM,SAAS,MAAM,aAAa,MAAM;AAAA,EACxC,IAAI,KAAK,UAAU,MAAM,MAAM,KAAK,UAAU,QAAQ,OAAO,GAAG;AAAA,IAC9D,MAAM,IAAI,MAAM,4DAA4D;AAAA,EAC9E;AAAA;AAGK,IAAM,kBAAkB,OAAO,WAAkC;AAAA,EACtE,MAAM,QAAQ,MAAM,MAAM;AAAA,EAC1B,WAAW,QAAQ,CAAC,MAAM,SAAS,MAAM,SAAS,MAAM,QAAQ,GAAG;AAAA,IACjE,MAAM,OAAO,IAAI,EAAE,MAAM,CAAC,UAAmB;AAAA,MAC3C,IAAI,CAAC,UAAU,KAAK;AAAA,QAAG,MAAM;AAAA,KAC9B;AAAA,EACH;AAAA;;;AD/LF,IAAM,mBAAmB,IAAI,OAAO;AACpC,IAAM,oBAAoB,KAAK;AAC/B,IAAM,QAAO,QAAO;AACpB,IAAM,YAAY,QAAO,OAAO;AAAA,EAC9B,MAAM,QAAO,IAAI,MAAM,QAAO,UAAU,EAAE,SAAS,GAAG,SAAS,MAAO,CAAC,CAAC;AAAA,EACxE,MAAM,QAAO,YAAY,KAAI;AAAA,EAC7B,QAAQ,QAAO,YAAY,QAAO,SAAS,CAAC,QAAQ,OAAO,CAAC,CAAC;AAAA,EAC7D,OAAO,QAAO,YAAY,QAAO,OAAO,MAAM,QAAO,YAAY,KAAM,CAAC,CAAC;AAC3E,CAAC;AACD,IAAM,QAAQ,QAAO,OAAO;AAAA,EAC1B,IAAI,IAAI,OAAO;AAAA,EACf,MAAM,IAAI,OAAO;AAAA,EACjB,aAAa,QAAO,YAAY,QAAO,MAAM;AAAA,EAC7C,SAAS,QAAO,YAAY,QAAO,OAAO;AAC5C,CAAC;AACD,IAAM,SAAS,QAAO,MAAM,KAAK,EAAE,MAAM,QAAO,YAAY,IAAI,CAAC;AACjE,IAAM,aAAa,QAAO,MAAM;AAAA,EAC9B,QAAO,OAAO,EAAE,SAAS,QAAO,SAAS,CAAC,aAAa,oBAAoB,CAAC,EAAE,CAAC;AAAA,EAC/E,QAAO,OAAO;AAAA,IACZ,SAAS,QAAO,QAAQ,OAAO;AAAA,IAC/B,QAAQ,QAAO,OAAO;AAAA,MACpB,QAAQ,QAAO,SAAS,CAAC,YAAY,WAAW,UAAU,CAAC;AAAA,IAC7D,CAAC;AAAA,EACH,CAAC;AACH,CAAC;AACD,IAAM,aAAa,QAAO,OAAO,EAAE,UAAU,QAAO,QAAQ,IAAI,EAAE,CAAC;AAAA;AACnE,MAAM,qBAAqB,MAAM;AAAC;AAElC,IAAM,SAAS,CACb,QACA,OACA,UACc;AAAA,EACd,MAAM,SAAS,QAAO,oBAAoB,MAAM,EAAE,KAAK;AAAA,EACvD,IAAI,OAAO,SAAS;AAAA,IAAW,MAAM,IAAI,aAAa,gCAAgC,OAAO;AAAA,EAC7F,OAAO,OAAO;AAAA;AAGhB,IAAM,iBAAiB,OAAO,SAAiB;AAAA,EAC7C,MAAM,QAAQ,OAAO,YAAY;AAAA,IAC/B,MAAM,OAAO,MAAM,MAAK,MAAM,GAAG;AAAA,IACjC,IAAI;AAAA,MACF,MAAM,SAAS,OAAO,MAAM,oBAAoB,CAAC;AAAA,MACjD,QAAQ,cAAc,MAAM,KAAK,KAAK,QAAQ,GAAG,OAAO,QAAQ,CAAC;AAAA,MACjE,IAAI,YAAY;AAAA,QAAmB,MAAM,IAAI,MAAM,uCAAuC;AAAA,MAC1F,OAAO,OACL,WACA,KAAK,MAAM,OAAO,SAAS,GAAG,SAAS,EAAE,SAAS,MAAM,CAAC,GACzD,gBACF;AAAA,cACA;AAAA,MACA,MAAM,KAAK,MAAM;AAAA;AAAA,KAElB,EAAE,MAAM,MAAM;AAAA,IACf,MAAM,IAAI,MACR,uFACF;AAAA,GACD;AAAA,EACD,MAAM,OAAO,MAAM,QAAQ;AAAA,EAC3B,MAAM,aACJ,SAAS,aAAa,SAAS,cAC3B,cACA,SAAS,QAAQ,SAAS,SAAS,SAAS,UAC1C,UACA;AAAA,EACR,IAAI,EAAE,eAAe,WAAY,KAAK,UAAU,MAAM,KAAK,WAAW,WAAW,MAAM,IAAK;AAAA,IAC1F,MAAM,IAAI,MAAM,6DAA6D;AAAA,EAC/E;AAAA,EACA,OAAO,EAAE,KAAK,GAAG,MAAM,UAAU,YAAY,cAAc,MAAM,QAAQ,OAAO,MAAM,MAAM;AAAA;AAK9F,IAAM,MAAM,OACV,YACA,QACA,MACA,QACA,WACuB;AAAA,EACvB,MAAM,aAAa,IAAI;AAAA,EACvB,MAAM,WAAW,WAAW,MAAM,WAAW,MAAM,GAAG,KAAM;AAAA,EAC5D,MAAM,WACJ,WAAW,YAAY,WAAW,SAAS,YAAY,IAAI,CAAC,QAAQ,WAAW,MAAM,CAAC;AAAA,EACxF,IAAI;AAAA,IACF,MAAM,WAAW,MAAM,MAAM,GAAG,WAAW,WAAW,UAAU;AAAA,MAC9D,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,uBAAuB;AAAA,WACnB,WAAW,UAAU,aAAa,WAAW,MAAM,WAAW,IAC9D,CAAC,IACD,EAAE,eAAe,UAAU,WAAW,QAAQ;AAAA,MACpD;AAAA,MACA,MAAM,KAAK,UAAU,IAAI;AAAA,MACzB,QAAQ;AAAA,IACV,CAAC;AAAA,IACD,IAAI,CAAC,SAAS,IAAI;AAAA,MAChB,MAAM,SAAS,MAAM,OAAO;AAAA,MAC5B,MAAM,IAAI,aAAa,YAAY,uBAAuB,SAAS,SAAS;AAAA,IAC9E;AAAA,IACA,IAAI,SAAS,SAAS;AAAA,MAAM,MAAM,IAAI,aAAa,qCAAqC;AAAA,IACxF,MAAM,SAAS,SAAS,KAAK,UAAU;AAAA,IACvC,MAAM,SAA4B,CAAC;AAAA,IACnC,IAAI,OAAO;AAAA,IACX,IAAI;AAAA,MACF,UAAS;AAAA,QACP,MAAM,QAAQ,MAAM,OAAO,KAAK;AAAA,QAChC,IAAI,MAAM;AAAA,UAAM;AAAA,QAChB,QAAQ,MAAM,MAAM;AAAA,QACpB,IAAI,OAAO;AAAA,UAAkB,MAAM,IAAI,aAAa,kCAAkC;AAAA,QACtF,OAAO,KAAK,MAAM,KAAK;AAAA,MACzB;AAAA,cACA;AAAA,MACA,MAAM,OAAO,OAAO,EAAE,MAAM,MAAG;AAAA,QAAG;AAAA,OAAS;AAAA,MAC3C,OAAO,YAAY;AAAA;AAAA,IAErB,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,OAAO,KAAK,MAAM,OAAO,OAAO,QAAQ,IAAI,EAAE,SAAS,MAAM,CAAC;AAAA,MAC9D,MAAM;AAAA,MACN,MAAM,IAAI,aAAa,YAAY,8BAA8B;AAAA;AAAA,IAEnE,OAAO,OAAO,QAAQ,MAAM,GAAG,iBAAiB;AAAA,IAChD,OAAO,OAAO;AAAA,IAEd,IAAI,QAAQ;AAAA,MACV,MAAM,IAAI,MAAM,2DAA2D;AAAA,IAC7E,IAAI,iBAAiB;AAAA,MAAc,MAAM;AAAA,IACzC,MAAM,IAAI,MAAM,YAAY,6DAA6D;AAAA,YACzF;AAAA,IACA,aAAa,QAAQ;AAAA;AAAA;AAIlB,IAAM,mBAAmB,OAAO,SAA8C;AAAA,EACnF,MAAM,aAAa,MAAM,eAAe,IAAI;AAAA,EAC5C,MAAM,SAAS,MAAM,IAAI,YAAY,cAAc,CAAC,GAAG,MAAM;AAAA,EAC7D,MAAM,OAAO,OAAO,OAAO,CAAC,UAAU,MAAM,YAAY,IAAI;AAAA,EAC5D,IAAI,KAAK,SAAS;AAAA,IAAK,MAAM,IAAI,MAAM,uDAAuD;AAAA,EAC9F,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,SAAS,KAAK,QAAQ;AAAA,IAC3D,MAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AAAA,EACA,OAAO,KAAK,IAAI,GAAG,IAAI,MAAM,mBAAmB;AAAA,IAC9C;AAAA,IACA;AAAA,OACI,gBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,YAAY,MAAM,GAAG,GAAG,EAAE;AAAA,EAChF,EAAE;AAAA;AAGJ,IAAM,OAAO,OAAU,MAAoC,WAAoC;AAAA,EAC7F,MAAM,SAAS,MAAM,QAAO,WAC1B,QAAO,WAAW,EAAE,KAAK,MAAM,OAAO,CAAC,UAAU,MAAM,CAAC,EAAE,KACxD,QAAO,OAAO;AAAA,IACZ,UAAU,UAAS,OAAO,UAAU;AAAA,IACpC,OAAO,CAAC,UAAU,UAAU;AAAA,EAC9B,CAAC,CACH,GACA,EAAE,OAAO,CACX;AAAA,EACA,IAAI,WAAW;AAAA,IAAW,MAAM,IAAI,MAAM,wCAAwC;AAAA,EAClF,OAAO;AAAA;AAGT,IAAM,iBACJ;AAEF,IAAM,cAAc,CAAC,aAA2B;AAAA,EAC9C,IAAI,KAAK,IAAI,KAAK;AAAA,IAAU,MAAM,IAAI,MAAM,cAAc;AAAA;AAG5D,IAAM,cAAc,CAClB,UACuB;AAAA,EACvB,IAAI,MAAM,UAAU;AAAA,IAAW,MAAM,IAAI,MAAM,MAAM,KAAK;AAAA,EAC1D,IAAI,MAAM,WAAW;AAAA,IAAW,MAAM,IAAI,MAAM,2CAA2C;AAAA,EAC3F,OAAO,EAAE,QAAQ,MAAM,OAAO;AAAA;AAGhC,IAAM,aAAa,CAAC,MAAY,YAC9B;AAAA,EACE,KAAK;AAAA,EACL,KAAK,YAAY,YAAY,KAAK;AAAA,EAAa,KAAK;AAAA,EACpD,6CAA6C,KAAK,mBAAmB,KAAK;AAAA,EAC1E,+HAA+H;AAAA,EAC/H,uBAAuB,6BAA6B,KAAK,qBAAqB,KAAK;AAAA,EACnF;AAAA,EACA,GAAG,iBAAiB,KAAK;AAAA,EACzB,wCAAwC,iBAAiB,KAAK;AAAA,EAC9D,6DAA6D,iBAAiB,KAAK;AAAA,EACnF;AACF,EACG,OAAO,OAAO,EACd,KAAK;AAAA;AAAA,CAAM;AAET,IAAM,aAAa,OACxB,MACA,MACA,WACgC;AAAA,EAChC,MAAM,WAAW,MAAM,aAAa,KAAK,EAAE;AAAA,EAC3C,IAAI,aAAa;AAAA,IAAW,OAAO,YAAY,QAAQ;AAAA,EACvD,QAAQ,UAAU,SAAS,eAAe,MAAM,gBAAgB,IAAI;AAAA,EACpE,YAAY,QAAQ;AAAA,EACpB,MAAM,eAAe,MACnB,KAAK,YAAY;AAAA,IACf,MAAM,UAAU,MAAM,aAAa,KAAK,EAAE;AAAA,IAC1C,IAAI,YAAY;AAAA,MAAW,OAAO,YAAY,OAAO;AAAA,IACrD,YAAY,QAAQ;AAAA,IACpB;AAAA,KACC,MAAM;AAAA,EACX,IAAI;AAAA,IAAY,OAAO,aAAa;AAAA,EACpC,IAAI,SAAS;AAAA,IACX,MAAM,IAAI,MAAM,+DAA+D;AAAA,EACjF,MAAM,UAAU,KAAK;AAAA,EACrB,IAAI,YAAY;AAAA,IAAW,MAAM,IAAI,MAAM,iCAAiC;AAAA,EAC5E,MAAM,aAAa,MAAM,eAAe,IAAI;AAAA,EAC5C,MAAM,SAAS,MACb,IACE,YACA,0BACA,EAAE,aAAa,QAAQ,SAAS,aAAa,KAAK,GAAG,GACrD,YACA,MACF;AAAA,EACF,IAAI,aAAa,MAAM,OAAO;AAAA,EAC9B,IAAI,WAAW,YAAY;AAAA,IACzB,MAAM,IAAI,MACR,gGACF;AAAA,EACF,IAAI,WAAW,YAAY,aAAa;AAAA,IACtC,MAAM,UAAU,MAAM,aAAa,KAAK,EAAE;AAAA,IAC1C,IAAI,YAAY;AAAA,MAAW,OAAO,YAAY,OAAO;AAAA,IACrD,YAAY,QAAQ;AAAA,IACpB,MAAM,SAAS,MAAM,IAAI,YAAY,cAAc,CAAC,GAAG,QAAQ,MAAM;AAAA,IACrE,IAAI,CAAC,OAAO,KAAK,CAAC,QAAQ,IAAI,OAAO,WAAW,IAAI,YAAY,IAAI,GAAG;AAAA,MACrE,MAAM,IAAI,MAAM,uDAAuD;AAAA,IACzE;AAAA,IACA,YAAY,QAAQ;AAAA,IACpB,aAAa,MAAM,OAAO;AAAA,IAC1B,IAAI,WAAW,YAAY,aAAa;AAAA,MACtC,YAAY,QAAQ;AAAA,MACpB,IAAI,CAAE,MAAM,iBAAiB,KAAK,EAAE,GAAI;AAAA,QACtC,OAAO,aAAa;AAAA,MACtB;AAAA,MACA,IAAI;AAAA,QACF,MAAM,IACJ,YACA,cACA;AAAA,UACE;AAAA,UACA,QAAQ,WAAW,MAAM,OAAO;AAAA,UAChC,aAAa,KAAK;AAAA,UAClB,2BAA2B;AAAA,QAC7B,GACA,YACA,MACF;AAAA,QACA,MAAM;AAAA,QACN,IAAI,OAAO;AAAA,UACT,MAAM,IAAI,MAAM,2DAA2D;AAAA,QAC7E,MAAM,WAAU,MAAM,aAAa,KAAK,EAAE;AAAA,QAC1C,IAAI,aAAY;AAAA,UAAW,OAAO,YAAY,QAAO;AAAA,QACrD,MAAM,aAAa,MAAM,OAAO,EAAE,MAAM,MAAG;AAAA,UAAG;AAAA,SAAS;AAAA,QACvD,IAAI,YAAY,YAAY,WAAW,WAAW,OAAO,WAAW;AAAA,UAClE,MAAM,IAAI,MAAM,qDAAqD;AAAA,QACvE,OAAO,aAAa;AAAA;AAAA,IAExB;AAAA,EACF;AAAA,EACA,IAAI,WAAW,YAAY;AAAA,IACzB,MAAM,IAAI,MAAM,oEAAoE;AAAA,EACtF,IAAI,WAAW,YAAY,WAAW,WAAW,OAAO,WAAW;AAAA,IACjE,MAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE,OAAO,aAAa;AAAA;;;AEvRtB,mBAAS;AACT,qBAAS;AACT;AACA;AAwBO,IAAM,YAAY,OAAO,YAA8C;AAAA,EAC5E,MAAM,QAAQ,MAAM,wBAAwB;AAAA,IAC1C,UAAU,QAAQ;AAAA,OACd,QAAQ,eAAe,YAAY,CAAC,IAAI,EAAE,YAAY,QAAQ,WAAW;AAAA,OACzE,QAAQ,eAAe,YAAY,CAAC,IAAI,EAAE,YAAY,QAAQ,WAAW;AAAA,OACzE,QAAQ,cAAc,YAAY,CAAC,IAAI,EAAE,WAAW,QAAQ,UAAU;AAAA,EAC5E,CAAC;AAAA,EACD,IAAI,CAAC,QAAQ,cAAc,MAAM,WAAW,WAAW,GAAG;AAAA,IACxD,MAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AAAA,EAEA,MAAM,SAAS,MAAM,QAAO,WAAW,gBAAgB,MAAM,UAAU,EAAE,OAAO,QAAQ,MAAM,CAAC,CAAC;AAAA,EAChG,MAAM,cAAc,OAAO,YAAY,KACrC,CAAC,eAAe,WAAW,QAAQ,SAAS,QAC9C,GAAG;AAAA,EACH,MAAM,mBAAmB,OAAO,YAAY,KAC1C,CAAC,eAAe,WAAW,QAAQ,SAAS,QAC9C;AAAA,EACA,IAAI,QAAQ,cAAc,gBAAgB,WAAW;AAAA,IACnD,MAAM,IAAI,MAAM,sDAAsD;AAAA,EACxE;AAAA,EACA,IAAI,CAAC,QAAQ,cAAc,qBAAqB,WAAW;AAAA,IACzD,MAAM,IAAI,MAAM,sDAAsD;AAAA,EACxE;AAAA,EAEA;AAAA,IACE,aAAa;AAAA,IACb,aAAa;AAAA,OACV;AAAA,MACD;AAAA,EACJ,MAAM,gBAAgB,oBAAoB,KAAK;AAAA,OAC1C;AAAA,IACH,UAAU,QAAQ,aACd,mBAAmB,WAClB,kBAAkB,QAAQ,YAAY,mBAAmB;AAAA,OAC1D,gBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY;AAAA,OAC/C,QAAQ,cAAc,qBAAqB,YAC3C,CAAC,IACD,EAAE,aAAa,iBAAiB,MAAM;AAAA,EAC5C,CAAC;AAAA,EACD,MAAM,yBAAyB,aAAa;AAAA,EAC5C,OAAO;AAAA,IACL;AAAA,IACA,OAAO,QAAQ,aACX,OAAO,YACJ,IAAI,CAAC,eAAe,WAAW,QAAQ,IAAI,EAC3C,OAAO,CAAC,SAAS,SAAS,QAAQ,IACrC,OAAO,YAAY,IAAI,CAAC,eAAe,WAAW,QAAQ,IAAI;AAAA,EACpE;AAAA;AASK,IAAM,mBAAmB,MAAgB;AAAA,EAC9C,IAAI,QAAQ;AAAA,EACZ,MAAM,SAAS,IAAI,SAAS;AAAA,IAC1B,KAAK,CAAC,OAAwB,WAAW,UAAU;AAAA,MACjD,IAAI,CAAC,OAAO;AAAA,QACV,QAAQ,OAAO,MAAM,KAAK;AAAA,MAC5B;AAAA,MACA,SAAS;AAAA;AAAA,EAEb,CAAC;AAAA,EACD,MAAM,WAAW,gBAAgB,EAAE,OAAO,QAAQ,OAAO,QAAQ,UAAU,KAAK,CAAC;AAAA,EACjF,OAAO;AAAA,IACL,QAAQ,OAAO,OAAO,aAAa;AAAA,MACjC,MAAM,SAAS,MAAM,SAAS,SAAS,GAAG,UAAU,aAAa,GAAG,KAAK;AAAA,MACzE,OAAO,SAAS;AAAA;AAAA,IAElB,QAAQ,OAAO,UAAU;AAAA,MACvB,MAAM,UAAU,SAAS,SAAS,GAAG,SAAS;AAAA,MAC9C,QAAQ;AAAA,MACR,IAAI;AAAA,QACF,QAAQ,MAAM,SAAS,KAAK;AAAA,gBAC5B;AAAA,QACA,QAAQ;AAAA,QACR,QAAQ,OAAO,MAAM;AAAA,CAAI;AAAA;AAAA;AAAA,IAG7B,OAAO,MAAM,SAAS,MAAM;AAAA,EAC9B;AAAA;AAsBK,IAAM,mBAAmB,OAC9B,SACA,aAC8B;AAAA,EAC9B,MAAM,WAAW,MAAM,wBAAwB;AAAA,EAC/C,MAAM,WAAW,kBACf,QAAQ,YACL,MAAM,SAAS,OAAO,aAAa,UAAU,YAAY,uBAAuB,CACrF;AAAA,EACA,MAAM,cAAc,oBAAoB,UAAU,QAAQ;AAAA,EAC1D,MAAM,yBACJ,YAAY,gBAAgB,cAC3B,QAAQ,cAAc,YAAY,gBAAgB;AAAA,EACrD,MAAM,aAAa,QAAQ,aACtB,UAAU,cAAc,CAAC,IAC1B,QAAQ,WAAW,SAAS,IAC1B,QAAQ,aACR,CAAC,MAAM,SAAS,OAAO,kBAAkB,UAAU,WAAW,MAAM,QAAQ,GAAG,CAAC;AAAA,EACtF,MAAM,aAAa,QAAQ,aACvB,YACC,QAAQ,cACR,MAAM,SAAS,OAAO,eAAe,UAAU,cAAc,UAAS,CAAC;AAAA,EAC5E,MAAM,YACJ,QAAQ,cACP,QAAQ,aACL,SACA,MAAM,SAAS,OAAO,aAAa,UAAU,WAAW,KAAK,GAAG,KAAK,MAAM;AAAA,EACjF,MAAM,QACJ,QAAQ,UAAU,yBAAyB,YAAY,MAAM,SAAS,OAAO,eAAe;AAAA,EAC9F,IAAI,CAAC,2BAA2B,UAAU,aAAa,MAAM,WAAW,IAAI;AAAA,IAC1E,MAAM,IAAI,MAAM,6BAA6B;AAAA,EAC/C;AAAA,EACA,IAAI,UAAU,aAAa,IAAI,YAAY,EAAE,OAAO,KAAK,EAAE,aAAa,KAAK;AAAA,IAC3E,MAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AAAA,EACA,OAAO;AAAA,IACL;AAAA,OACI,UAAU,YAAY,CAAC,IAAI,EAAE,MAAM;AAAA,OACnC,eAAe,YAAY,CAAC,IAAI,EAAE,WAAW;AAAA,IACjD;AAAA,IACA;AAAA,IACA,qBAAqB,0BAA0B,UAAU;AAAA,EAC3D;AAAA;;;AChLF;AACA,mBAAS,mBAAQ;AACjB;AACA;AACA;AAAA,YACE;AAAA,WACA;AAAA;AAAA;AAAA,WAGA;AAAA,aACA;AAAA,cACA;AAAA,cACA;AAAA,YACA;AAAA,QACA;AAAA,UACA;AAAA,eACA;AAAA;AAEF,8BAAmB,kBAAS,kBAAM;AAClC,mBAAS;AACT;;;ACrBA,qBAAS;AACT,kBAAS,iBAAO,oBAAO,wBAAU;AACjC,oBAAS;AACT,oBAAS,kBAAS;;;ACHlB,mBAAS;AACT,qBAAS;AACT,sBAAS;AACT;AAAA,YACE;AAAA,WACA;AAAA,WACA;AAAA,cACA;AAAA,cACA;AAAA,YACA;AAAA,QACA;AAAA;AAAA,eAEA;AAAA;AAEF,sBAAS,uBAAW,qBAAS,wBAAS,qBAAY;AAClD,qBAAS;AAGT,IAAM,cAAc;AACpB,IAAM,kBAAkB;AAEjB,IAAM,iBAAiB,QAAO,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC;AA6CpE,IAAM,iBAAiB,QAAO,OAAO;AAAA,EACnC,SAAS,QAAO;AAAA,EAChB,aAAa,QAAO;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB,QAAO,MAAM,QAAO,MAAM;AAAA,EAC3C,mBAAmB,QAAO,MAAM,QAAO,MAAM;AAAA,EAC7C,mBAAmB,QAAO,YAAY,QAAO,MAAM;AACrD,CAAC;AA6BD,IAAM,gBAAgB,CAAC,SAAyB,KAAK,WAAW,MAAM,GAAG;AAElE,IAAM,yBAAyB,CAAC,WAAuC;AAAA,EAC5E,IAAI,WAAW,aAAa,WAAW,UAAU;AAAA,IAC/C,OAAO;AAAA,EACT;AAAA,EACA,MAAM,aAAa,OAAO,WAAW,GAAG,IAAI,OAAO,MAAM,CAAC,IAAI;AAAA,EAC9D,IAAI,CAAC,gBAAgB,KAAK,UAAU,GAAG;AAAA,IACrC,MAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,uBAAuB,CAClC,YACA,kBAEA,kBAAkB,aAAa,kBAAkB,aAC7C,YACA,qCAAqC,oCAAoC;AAExE,IAAM,sBAAsB,CACjC,qBACA,aAAa,wBACW;AAAA,EACxB,MAAM,OAAO,cAAc,mBAAmB;AAAA,EAC9C,MAAM,SAAS,iBAAiB;AAAA,EAChC,MAAM,eAAe,KAAK,YAAY,MAAM;AAAA,EAC5C,IAAI,iBAAiB,IAAI;AAAA,IACvB,MAAM,IAAI,MACR,0IACF;AAAA,EACF;AAAA,EACA,IACE,KAAK,SAAS,aAAa,KAC3B,KAAK,SAAS,SAAS,KACvB,KAAK,SAAS,YAAY,KAC1B,KAAK,SAAS,OAAO,GACrB;AAAA,IACA,MAAM,IAAI,MACR,uHACF;AAAA,EACF;AAAA,EACA,IAAI,KAAK,SAAS,oCAAoC,GAAG;AAAA,IACvD,OAAO,EAAE,SAAS,OAAO,WAAW;AAAA,EACtC;AAAA,EACA,IAAI,KAAK,SAAS,eAAe,GAAG;AAAA,IAClC,OAAO,EAAE,SAAS,QAAQ,WAAW;AAAA,EACvC;AAAA,EAEA,MAAM,oBAAoB,KAAK,MAAM,GAAG,YAAY;AAAA,EACpD,MAAM,SAAS,kBAAkB,SAAS,MAAM,IAC5C,kBAAkB,MAAM,GAAG,CAAC,OAAO,MAAM,IACzC;AAAA,EACJ,OAAO,EAAE,SAAS,OAAO,QAAQ,WAAW;AAAA;AAGvC,IAAM,wBAAwB,CACnC,cACA,WACsB;AAAA,EACtB,MAAM,gBAAgB,GAAG,eAAe;AAAA,EACxC,QAAQ,aAAa;AAAA,SACd;AAAA,MACH,OAAO,EAAE,SAAS,OAAO,WAAW,CAAC,OAAO,YAAY,aAAa,EAAE;AAAA,SACpE;AAAA,MACH,OAAO,EAAE,SAAS,QAAQ,WAAW,CAAC,OAAO,YAAY,aAAa,EAAE;AAAA,SACrE;AAAA,MACH,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA,GAAI,aAAa,WAAW,YAAY,CAAC,IAAI,CAAC,YAAY,aAAa,MAAM;AAAA,UAC7E;AAAA,QACF;AAAA,MACF;AAAA;AAAA;AAIN,IAAM,kBAAkB,CAAC,YAA2C;AAAA,EAClE,IAAI,gBAAgB,MAAM,WAAW,SAAQ,OAAO,EAAE,SAAS,GAAG;AAAA,IAChE,OAAO,CAAC,OAAO;AAAA,EACjB;AAAA,EACA,QAAQ,QAAQ,IAAI,WAAW,uBAC5B,MAAM,GAAG,EACT,OAAO,OAAO,EACd,IAAI,CAAC,cAAc,GAAG,UAAU,UAAU,YAAY,GAAG;AAAA;AAG9D,IAAM,eAAe,CAAC,MAAc,SAA0B;AAAA,EAC5D,MAAM,QAAQ,SAAS,MAAM,IAAI;AAAA,EACjC,OAAO,UAAU,MAAO,CAAC,MAAM,WAAW,IAAI,KAAK,CAAC,YAAW,KAAK;AAAA;AAGtE,IAAM,6BAA6B;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAM,qBAAqB,CAAC,iBAAiB,YAAY;AACzD,IAAM,kBAAkB;AAEjB,IAAM,gCAAgC,CAC3C,WACA,cAEA,cAAa,WAAW,2BAA2B,KAAK,CAAC,SAAS,aAAa,MAAM,SAAS,CAAC;AAE1F,IAAM,6BAA6B,CAAC,YAQ5B;AAAA,EACb,MAAM,eAAe,QAAQ;AAAA,EAC7B,OACE,QAAQ,aAAa,YACrB,iBAAiB,aACjB,QAAQ,QAAQ,aAChB,QAAQ,aAAa,QAAQ,OAC7B,QAAQ,aAAa,mBACrB,mBAAmB,KAAK,CAAC,SAAS,aAAa,MAAM,YAAY,CAAC,KAClE,aAAa,cAAc,QAAQ,SAAS,KAC5C,aAAa,cAAc,QAAQ,IAAI;AAAA;AAIpC,IAAM,oBAAoB,OAC/B,SACA,UAA8C,CAAC,MAC3B;AAAA,EACpB,MAAM,aAAa,YAAW,OAAO,IACjC,CAAC,OAAO,KACP,QAAQ,IAAI,QAAQ,IAClB,MAAM,UAAS,EACf,OAAO,OAAO,EACd,QAAQ,CAAC,cAAc,gBAAgB,OAAO,EAAE,IAAI,CAAC,SAAS,MAAK,WAAW,IAAI,CAAC,CAAC;AAAA,EAC3F,IAAI;AAAA,EACJ,WAAW,QAAQ,YAAY;AAAA,IAC7B,MAAM,aAAY,MAAM,QACtB,MACA,gBAAgB,MAAM,UAAU,WAAU,OAAO,WAAU,IAC7D,EACG,KAAK,MAAM,IAAI,EACf,MAAM,MAAM,KAAK;AAAA,IACpB,IAAI,YAAW;AAAA,MACb,WAAW;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EACA,IAAI,aAAa,WAAW;AAAA,IAC1B,MAAM,IAAI,MAAM,kBAAkB,iBAAiB;AAAA,EACrD;AAAA,EACA,MAAM,YAAY,MAAM,UAAS,QAAQ;AAAA,EACzC,IAAI,gBAAgB,MAAM,SAAS;AAAA,IACjC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,MAAM,QAAQ,SAAS;AAAA,EAC7B,MAAM,eACJ,QAAQ,iBAAiB,YAAY,YAAY,MAAM,UAAS,QAAQ,YAAY;AAAA,EAGtF,MAAM,mBAAmB,8BAA8B,gBAAgB,GAAG,SAAS;AAAA,EACnF,SAAS,OAAO,YAAa,OAAO,SAAQ,IAAI,GAAG;AAAA,IACjD,MAAM,WAAW,MAAM,KAAK,IAAI;AAAA,IAGhC,MAAM,2BAA2B,2BAA2B;AAAA,MAC1D,UAAU,gBAAgB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,UAAU,SAAS;AAAA,IACrB,CAAC;AAAA,IACD,KACG,SAAS,OAAO,OAAW,MAC1B,SAAS,OAAO,QAAW,KAAK,CAAC,0BACnC;AAAA,MACA,MAAM,IAAI,MAAM,6DAA6D,MAAM;AAAA,IACrF;AAAA,IACA,IAAI,QAAQ,aAAa,SAAS,QAAQ,KAAK,SAAS,QAAQ,OAAO,CAAC,kBAAkB;AAAA,MACxF,MAAM,IAAI,MAAM,gDAAgD,MAAM;AAAA,IACxE;AAAA,IACA,MAAM,SAAS,SAAQ,IAAI;AAAA,IAC3B,IAAI,WAAW,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,kBAAkB,OACtB,UACA,sBAC2C;AAAA,EAC3C,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,aAAa,OAAO,UAAyD;AAAA,IACjF,IAAI,UAAU,SAAS,IAAI,MAAM,OAAO;AAAA,IACxC,IAAI,YAAY,WAAW;AAAA,MACzB,UAAU,kBAAkB,MAAM,OAAO;AAAA,MACzC,SAAS,IAAI,MAAM,SAAS,OAAO;AAAA,IACrC;AAAA,IACA,OAAO,KAAK,OAAO,SAAS,MAAM,QAAQ;AAAA;AAAA,EAE5C,MAAM,UAAiC,CAAC;AAAA,EACxC,WAAW,WAAW,UAAU;AAAA,IAC9B,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,QAAQ,MAAM,WAAW,QAAQ,KAAK;AAAA,MACtC,OAAO,OAAO;AAAA,MACd,IAAI,iBAAiB,SAAS,MAAM,QAAQ,WAAW,iBAAiB,GAAG;AAAA,QACzE;AAAA,MACF;AAAA,MACA,MAAM;AAAA;AAAA,IAER,QAAQ,KAAK;AAAA,SACR;AAAA,MACH;AAAA,SACI,QAAQ,eAAe,YACvB,CAAC,IACD;AAAA,QACE,YAAY;AAAA,aACP,QAAQ;AAAA,UACX,SAAS,MAAM,WAAW,QAAQ,WAAW,OAAO;AAAA,QACtD;AAAA,MACF;AAAA,MACJ,SAAS,MAAM,QAAQ,IAAI,QAAQ,QAAQ,IAAI,UAAU,CAAC;AAAA,IAC5D,CAAC;AAAA,EACH;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,oBAAoB,CAC/B,iBACA,QACkC;AAAA,EAClC,IAAI,oBAAoB,SAAS;AAAA,IAC/B,MAAM,UAAU,CACd,SACA,MACA,WACmB;AAAA,MACnB,MAAM,OAAO,YAAY,iBAAiB,CAAC,QAAQ,IAAI,CAAC;AAAA,MACxD,OAAO;AAAA,QACL,IAAI,GAAG,WAAW;AAAA,QAClB,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,OAAO,EAAE,SAAS,aAAa,WAAW,CAAC,GAAG,MAAM,aAAa,WAAW,IAAI,EAAE;AAAA,QAClF,YAAY;AAAA,UACV,SAAS;AAAA,YACP,SAAS;AAAA,YACT,WAAW,CAAC,GAAG,MAAM,QAAQ,wBAAwB,WAAW,IAAI;AAAA,UACtE;AAAA,UACA,OAAO,CAAC,WAAW,OAAO,MAAM,kBAAkB,IAAI,IAAI,KAAK;AAAA,QACjE;AAAA,QACA,SAAS,CAAC,EAAE,SAAS,aAAa,WAAW,CAAC,GAAG,MAAM,WAAW,IAAI,EAAE,CAAC;AAAA,MAC3E;AAAA;AAAA,IAEF,OAAO;AAAA,MACL,QAAQ,gBAAgB,wBAAwB,KAAK;AAAA,MACrD,QAAQ,kBAAkB,wBAAwB,KAAK;AAAA,MACvD,QAAQ,gBAAgB,yBAAyB,IAAI;AAAA,IACvD;AAAA,EACF;AAAA,EAEA,IAAI,oBAAoB,UAAU;AAAA,IAChC,MAAM,SAAS,OAAO,OAAO;AAAA,IAC7B,MAAM,UAAU,CAAC,OAAe,YAAqC;AAAA,MACnE,IAAI,WAAW;AAAA,MACf;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,OAAO,EAAE,SAAS,aAAa,WAAW,CAAC,SAAS,GAAG,UAAU,OAAO,EAAE;AAAA,MAC1E,cAAc;AAAA,MACd,YAAY;AAAA,QACV,SAAS,EAAE,SAAS,aAAa,WAAW,CAAC,SAAS,GAAG,UAAU,OAAO,EAAE;AAAA,QAC5E,OAAO,CAAC,WAAW,OAAO,MAAM,0BAA0B,IAAI,IAAI,KAAK;AAAA,MACzE;AAAA,MACA,SAAS,CAAC,EAAE,SAAS,aAAa,WAAW,CAAC,aAAa,MAAM,GAAG,UAAU,OAAO,EAAE,CAAC;AAAA,IAC1F;AAAA,IACA,OAAO,CAAC,QAAQ,oBAAoB,KAAK,GAAG,QAAQ,qBAAqB,IAAI,CAAC;AAAA,EAChF;AAAA,EAEA,IAAI,oBAAoB,SAAS;AAAA,IAC/B,OAAO;AAAA,MACL;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,UACL,SAAS;AAAA,UACT,WAAW;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP;AAAA,YACE,SAAS;AAAA,YACT,WAAW,CAAC,QAAQ,OAAO,eAAe;AAAA,YAC1C,cAAc;AAAA,UAChB;AAAA,UACA,EAAE,SAAS,gBAAgB,WAAW,CAAC,QAAQ,OAAO,eAAe,EAAE;AAAA,QACzE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,CAAC;AAAA;AAGV,IAAM,gBAA+B;AAAA,EACnC,KAAK,CAAC,SAAS,YAAY,YAAY,WACrC,IAAI,QAAQ,CAAC,aAAY;AAAA,IACvB,UACE,SACA,CAAC,GAAG,UAAU,GACd,EAAE,UAAU,QAAQ,WAAW,OAAO,MAAM,SAAS,WAAW,aAAa,KAAK,GAClF,CAAC,OAAiC,QAAQ,WAAW;AAAA,MACnD,SAAQ;AAAA,QACN,UAAU,OAAO,OAAO,SAAS,WAAW,MAAM,OAAO,UAAU,OAAO,IAAI;AAAA,QAC9E;AAAA,QACA;AAAA,WACI,UAAU,OAAO,CAAC,IAAI,EAAE,OAAO,MAAM,QAAQ;AAAA,MACnD,CAAC;AAAA,KAEL;AAAA,GACD;AACL;AAEA,IAAM,UAAU,OACd,QACA,YACA,cAC2B;AAAA,EAC3B,MAAM,SAAS,MAAM,OAAO,IAAI,WAAW,SAAS,WAAW,WAAW,SAAS;AAAA,EACnF,IAAI,OAAO,aAAa,KAAK,WAAW,iBAAiB,MAAM;AAAA,IAC7D,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UACJ,OAAO,OAAO,KAAK,KACnB,OAAO,OAAO,KAAK,KACnB,OAAO,SACP,iBACA,MAAM,GAAG,KAAM;AAAA,EACjB,MAAM,IAAI,MACR,GAAG,WAAW,WAAW,WAAW,UAAU,KAAK,GAAG,wBAAwB,OAAO,aAAa,QACpG;AAAA;AAGF,IAAM,iBAAiB,OACrB,QACA,eAC2C;AAAA,EAC3C,MAAM,SAAgC,CAAC;AAAA,EACvC,WAAW,WAAW,YAAY;AAAA,IAChC,MAAM,SAAS,MAAM,OAAO,IAAI,QAAQ,MAAM,SAAS,QAAQ,MAAM,WAAW,GAAM;AAAA,IACtF,IACE,OAAO,aAAa,MACnB,QAAQ,iBAAiB,aACxB,QAAQ,aAAa,KAAK,GAAG,OAAO;AAAA,EAAW,OAAO,QAAQ,IAChE;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,6BAA6B,OACjC,QACA,UACA,qBACA,eACkB;AAAA,EAClB,WAAW,WAAW,UAAU;AAAA,IAC9B,IAAI,QAAQ,eAAe,WAAW;AAAA,MACpC;AAAA,IACF;AAAA,IACA,MAAM,SAAS,MAAM,QAAQ,QAAQ,QAAQ,WAAW,SAAS,GAAM;AAAA,IACvE,MAAM,oBAAoB,QAAQ,WAAW,MAAM,GAAG,OAAO;AAAA,EAAW,OAAO,QAAQ;AAAA,IACvF,IAAI,sBAAsB,WAAW;AAAA,MACnC,MAAM,IAAI,MAAM,qDAAqD,QAAQ,OAAO;AAAA,IACtF;AAAA,IACA,MAAM,6BAA6B,MAAM,UAAS,iBAAiB,EAAE,MAAM,CAAC,UAAmB;AAAA,MAC7F,MAAM,IAAI,MACR,mDAAmD,QAAQ,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAC5H;AAAA,KACD;AAAA,IACD,IAAI,+BAA+B,qBAAqB;AAAA,MACtD;AAAA,IACF;AAAA,IACA,MAAM,IAAI,MACR,UAAU,QAAQ,cAAc,+CAA+C,yGACjF;AAAA,EACF;AAAA;AAGF,IAAM,cAAc,OAAO,SACzB,UAAS,MAAM,MAAM,EAClB,KAAK,CAAC,YAAY,QAAO,oBAAoB,cAAc,EAAE,KAAK,MAAM,OAAO,CAAC,CAAC,EACjF,KAAK,CAAC,YAAa,QAAQ,SAAS,SAAS,QAAQ,QAAQ,SAAU,EACvE,MAAM,MAAG;AAAA,EAAG;AAAA,CAAS;AAE1B,IAAM,eAAe,OAAO,MAAc,UAAyC;AAAA,EACjF,MAAM,YAAY,SAAQ,IAAI;AAAA,EAC9B,MAAM,YAAY,GAAG,QAAQ,QAAQ;AAAA,EACrC,MAAM,OAAM,WAAW,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAAA,EACvD,IAAI,gBAAgB,MAAM,SAAS;AAAA,IACjC,MAAM,OAAM,WAAW,GAAK;AAAA,EAC9B;AAAA,EACA,MAAM,WAAU,WAAW,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC;AAAA,GAAO,EAAE,MAAM,IAAM,CAAC;AAAA,EACjF,MAAM,QAAO,WAAW,IAAI;AAAA;AAG9B,IAAM,mBAAmB,OAAO,eAAwC;AAAA,EACtE,MAAM,sBAAsB,MAAM,UAAS,UAAU;AAAA,EACrD,MAAM,WAAoB,KAAK,MAC7B,MAAM,UAAS,MAAK,SAAQ,SAAQ,mBAAmB,CAAC,GAAG,cAAc,GAAG,MAAM,CACpF;AAAA,EACA,IACE,OAAO,aAAa,YACpB,aAAa,QACb,EAAE,UAAU,aACZ,SAAS,SAAS,eAClB,EAAE,aAAa,aACf,OAAO,SAAS,YAAY,UAC5B;AAAA,IACA,MAAM,IAAI,MAAM,kCAAkC,qBAAqB;AAAA,EACzE;AAAA,EACA,OAAO,SAAS;AAAA;AAGlB,IAAM,qBAAqB,MAAc,MAAK,SAAQ,kBAAkB,CAAC,GAAG,sBAAsB;AAElG,IAAM,kBAAkB,OACtB,QACA,UACA,WACA,OACA,0BAC4B;AAAA,EAC5B,IAAI,UAAU;AAAA,EACd,WAAW,WAAW,UAAU;AAAA,IAC9B,UAAU,KAAK,SAAS,mBAAmB,QAAQ,GAAG;AAAA,IACtD,MAAM,aAAa,WAAW,OAAO;AAAA,IACrC,IAAI;AAAA,MACF,WAAW,cAAc,QAAQ,SAAS;AAAA,QACxC,MAAM,QAAQ,QAAQ,YAAY,KAAM;AAAA,MAC1C;AAAA,MACA,OAAO,OAAO;AAAA,MACd,UAAU;AAAA,QACR,SAAS,QAAQ;AAAA,QACjB,aAAa,QAAQ;AAAA,QACrB,gBAAgB,QAAQ;AAAA,QACxB,iBAAiB,QAAQ;AAAA,QACzB,mBAAmB,QAAQ;AAAA,MAC7B;AAAA,MACA,MAAM,aAAa,WAAW,OAAO;AAAA,MACrC,MAAM;AAAA;AAAA,IAER,IAAI,QAAQ,UAAU,uBAAuB;AAAA,MAE3C,OAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACR,SAAS,QAAQ;AAAA,MACjB,aAAa,QAAQ;AAAA,MACrB,gBAAgB,QAAQ;AAAA,MACxB,iBAAiB,QAAQ,gBAAgB,OAAO,CAAC,OAAO,OAAO,QAAQ,EAAE;AAAA,MACzE,mBAAmB,CAAC,GAAG,QAAQ,mBAAmB,QAAQ,EAAE;AAAA,IAC9D;AAAA,IACA,MAAM,aAAa,WAAW,OAAO;AAAA,EACvC;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,0BAA0B,CAAC,YAC/B,QAAQ,sBAAsB,aAC9B,QAAQ,kBAAkB,SAAS,QAAQ,iBAAiB,IACxD,QAAQ,oBACR,CAAC,GAAG,QAAQ,mBAAmB,QAAQ,iBAAiB;AAEvD,IAAM,UAAU,OAAO,YAAoD;AAAA,EAChF,MAAM,SAAS,QAAQ,UAAU;AAAA,EACjC,MAAM,oBAAoB,QAAQ,qBAAqB;AAAA,EACvD,MAAM,kBAAkB,QAAQ,YAAY,QAAQ;AAAA,EACpD,MAAM,MAAM,QAAQ,OAAO,QAAQ,SAAS;AAAA,EAC5C,MAAM,aAAa,MAAM,gBACvB,kBAAkB,iBAAiB,GAAG,GACtC,iBACF;AAAA,EACA,MAAM,YAAY,QAAQ,aAAa,mBAAmB;AAAA,EAC1D,MAAM,WAAW,MAAM,YAAY,SAAS;AAAA,EAE5C,IAAI,UAAU,YAAY,QAAQ,gBAAgB;AAAA,IAChD,MAAM,OAAO,IAAI,IAAI,WAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;AAAA,IACvE,MAAM,UAAU,SAAS,gBAAgB,QAAQ,CAAC,OAAO;AAAA,MACvD,MAAM,UAAU,KAAK,IAAI,EAAE;AAAA,MAC3B,OAAO,YAAY,YAAY,CAAC,IAAI,CAAC,OAAO;AAAA,KAC7C;AAAA,IACD,MAAM,SAAS,MAAM,eAAe,QAAQ,OAAO;AAAA,IACnD,IAAI,QAAQ,UAAU,CAAC,QAAQ,SAAS;AAAA,MACtC,OAAO;AAAA,QACL,UAAU,SAAS,gBAAgB,SAAS;AAAA,QAC5C,cAAc,SAAS;AAAA,QACvB,mBAAmB,SAAS;AAAA,QAC5B,mBAAmB,SAAS;AAAA,QAC5B,iBAAiB,SAAS;AAAA,QAC1B,oBAAoB,SAAS;AAAA,QAC7B,0BAA0B,OAAO,IAAI,CAAC,YAAY,QAAQ,EAAE;AAAA,QAC5D,uBAAuB;AAAA,QACvB,SAAS,QAAQ;AAAA,MACnB;AAAA,IACF;AAAA,IACA,MAAM,YAAY,IAAI,IAAI,OAAO,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;AAAA,IAC7D,MAAM,qBAAqB,QAAQ,OACjC,CAAC,YACC,QAAQ,UAAU,QAAQ,OAAO,SAAS,qBAAqB,UAAU,IAAI,QAAQ,EAAE,CAC3F;AAAA,IACA,MAAM,eAAe,IAAI,IAAI,mBAAmB,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;AAAA,IAC5E,MAAM,YAAY,OAAO,OAAO,CAAC,YAAY,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;AAAA,IAC1E,IAAI,UAA0B;AAAA,MAC5B,SAAS,SAAS;AAAA,MAClB,aAAa,SAAS;AAAA,MACtB,gBAAgB,SAAS;AAAA,MACzB,iBAAiB,SAAS,gBAAgB,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;AAAA,MAC9E,mBAAmB;AAAA,QACjB,GAAG,SAAS;AAAA,QACZ,GAAG,mBAAmB,IAAI,CAAC,YAAY,QAAQ,EAAE;AAAA,MACnD;AAAA,IACF;AAAA,IACA,IAAI,UAAU,SAAS,GAAG;AAAA,MACxB,MAAM,aAAa,WAAW,OAAO;AAAA,MACrC,UAAU,MAAM,gBACd,QACA,WACA,WACA,SACA,QAAQ,cAAc,IACxB;AAAA,IACF;AAAA,IACA,IAAI,QAAQ,sBAAsB,WAAW;AAAA,MAC3C,MAAM,IAAG,WAAW,EAAE,OAAO,KAAK,CAAC;AAAA,IACrC;AAAA,IACA,OAAO;AAAA,MACL,UAAU,SAAS,gBAAgB,SAAS;AAAA,MAC5C,cAAc,SAAS;AAAA,MACvB,mBAAmB,SAAS;AAAA,MAC5B,mBAAmB,SAAS;AAAA,MAC5B,iBAAiB,SAAS;AAAA,MAC1B,oBAAoB,wBAAwB,OAAO;AAAA,MACnD,0BAA0B,CAAC;AAAA,MAC3B,uBAAuB;AAAA,MACvB,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,MAAM,IAAG,WAAW,EAAE,OAAO,KAAK,CAAC;AAAA,EAEnC,MAAM,SAAS,uBAAuB,QAAQ,MAAM;AAAA,EACpD,MAAM,aAAa,QAAQ,cAAc,QAAQ,KAAK;AAAA,EACtD,IAAI,eAAe,WAAW;AAAA,IAC5B,MAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AAAA,EACA,MAAM,sBAAsB,MAAM,UAAS,UAAU;AAAA,EACrD,MAAM,eAAe,oBAAoB,qBAAqB,UAAU;AAAA,EACxE,MAAM,UAAU,sBAAsB,cAAc,MAAM;AAAA,EAC1D,MAAM,WAAW,MAAM,eAAe,QAAQ,UAAU;AAAA,EACxD,MAAM,2BAA2B,QAAQ,UAAU,qBAAqB,UAAU;AAAA,EAElF,IAAI,QAAQ,QAAQ;AAAA,IAClB,OAAO;AAAA,MACL,UAAU;AAAA,MACV,cAAc,QAAQ;AAAA,MACtB,mBAAmB,QAAQ;AAAA,MAC3B,mBAAmB;AAAA,MACnB,iBAAiB,aAAa;AAAA,MAC9B,oBAAoB,CAAC;AAAA,MACrB,0BAA0B,QAAQ,UAAU,SAAS,IAAI,CAAC,YAAY,QAAQ,EAAE,IAAI,CAAC;AAAA,MACrF,uBAAuB;AAAA,MACvB,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,MAAM,oBACJ,QAAQ,sBAAsB,YAC1B,MAAM,kBACJ,QAAQ,SACR,aAAa,WAAW,YAAY,CAAC,IAAI,EAAE,cAAc,aAAa,OAAO,CAC/E,IACA,MAAM,kBAAkB,QAAQ,OAAO;AAAA,EAC7C,MAAM,QAAQ,QAAQ,KAAK,SAAS,SAAS,kBAAkB,CAAC;AAAA,EAChE,MAAM,cAAc,MAAM,iBAAiB,UAAU;AAAA,EACrD,IAAI,WAAW,YAAY,gBAAgB,QAAQ;AAAA,IACjD,MAAM,IAAI,MAAM,oBAAoB,yBAAyB,QAAQ;AAAA,EACvE;AAAA,EACA,MAAM,WAAW,gBAAgB,QAAQ;AAAA,EAEzC,IAAI,CAAC,QAAQ,WAAW,SAAS,WAAW,GAAG;AAAA,IAC7C,OAAO;AAAA,MACL;AAAA,MACA,cAAc,QAAQ;AAAA,MACtB,mBAAmB;AAAA,MACnB,mBAAmB;AAAA,MACnB,iBAAiB,aAAa;AAAA,MAC9B,oBAAoB,CAAC;AAAA,MACrB,0BAA0B,QAAQ,UAAU,CAAC,IAAI,SAAS,IAAI,CAAC,YAAY,QAAQ,EAAE;AAAA,MACrF,uBAAuB;AAAA,MACvB,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,MAAM,UAA0B;AAAA,IAC9B,SAAS;AAAA,IACT,aAAa,QAAQ;AAAA,IACrB,gBAAgB,aAAa;AAAA,IAC7B,iBAAiB,SAAS,IAAI,CAAC,YAAY,QAAQ,EAAE;AAAA,IACrD,mBAAmB,CAAC;AAAA,EACtB;AAAA,EACA,MAAM,aAAa,WAAW,OAAO;AAAA,EACrC,MAAM,YAAY,MAAM,gBACtB,QACA,UACA,WACA,SACA,QAAQ,cAAc,IACxB;AAAA,EACA,IAAI,UAAU,sBAAsB,WAAW;AAAA,IAC7C,MAAM,IAAG,WAAW,EAAE,OAAO,KAAK,CAAC;AAAA,EACrC;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA,cAAc,QAAQ;AAAA,IACtB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,iBAAiB,aAAa;AAAA,IAC9B,oBAAoB,wBAAwB,SAAS;AAAA,IACrD,0BAA0B,CAAC;AAAA,IAC3B,uBAAuB;AAAA,IACvB,SAAS;AAAA,EACX;AAAA;;;AD1tBF,IAAM,MAAM,CAAC,UACX,MACG,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,QAAQ,EACxB,WAAW,KAAK,QAAQ;AAE7B,IAAM,kBAAkB,CAAC,UACvB,IAAI,MAAM,WAAW,MAAM,MAAM,EAAE,WAAW,KAAK,MAAK;AAEnD,IAAM,oBAAoB,CAAC,YAKT;AAAA,EACvB,IAAI,QAAQ,aAAa,SAAS;AAAA,IAChC,MAAM,OAAO,MAAK,QAAQ,MAAM,WAAW,WAAW,QAAQ,uBAAuB;AAAA,IACrF,OAAO;AAAA,MACL,MAAM;AAAA,QACJ;AAAA,QACA,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAA2P,gBAAgB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MACxS;AAAA,MACA,UAAU;AAAA,QACR,EAAE,SAAS,aAAa,WAAW,CAAC,UAAU,eAAe,EAAE;AAAA,QAC/D,EAAE,SAAS,aAAa,WAAW,CAAC,UAAU,UAAU,SAAS,uBAAuB,EAAE;AAAA,MAC5F;AAAA,MACA,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,IAAI,QAAQ,aAAa,UAAU;AAAA,IACjC,MAAM,QAAQ;AAAA,IACd,MAAM,OAAO,MAAK,QAAQ,MAAM,WAAW,gBAAgB,GAAG,aAAa;AAAA,IAC3E,MAAM,SAAS,OAAO,QAAQ,OAAO;AAAA,IACrC,OAAO;AAAA,MACL,MAAM;AAAA,QACJ;AAAA,QACA,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,YAAgN;AAAA;AAAA;AAAA,cAAyE,IAAI,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAC1T;AAAA,MACA,UAAU;AAAA,QACR,EAAE,SAAS,aAAa,WAAW,CAAC,WAAW,QAAQ,IAAI,EAAE;AAAA,QAC7D,EAAE,SAAS,aAAa,WAAW,CAAC,aAAa,QAAQ,IAAI,EAAE;AAAA,QAC/D,EAAE,SAAS,aAAa,WAAW,CAAC,aAAa,MAAM,GAAG,UAAU,OAAO,EAAE;AAAA,MAC/E;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM,IAAI,MAAM,gEAAgE;AAAA;AAGlF,IAAM,iBAA+B;AAAA,EACnC,KAAK,OAAO,SAAS,YAAY,YAAY,UAAW;AAAA,IACtD,MAAM,aAAa,MAAM,kBAAkB,OAAO;AAAA,IAClD,OAAO,IAAI,QAAQ,CAAC,aAAY;AAAA,MAC9B,UACE,YACA,CAAC,GAAG,UAAU,GACd,EAAE,UAAU,QAAQ,WAAW,OAAO,MAAM,SAAS,WAAW,aAAa,KAAK,GAClF,CAAC,OAAiC,QAAQ,WACxC,SAAQ;AAAA,QACN,UAAU,OAAO,OAAO,SAAS,WAAW,MAAM,OAAO,UAAU,OAAO,IAAI;AAAA,QAC9E;AAAA,QACA;AAAA,WACI,UAAU,OAAO,CAAC,IAAI,EAAE,OAAO,MAAM,QAAQ;AAAA,MACnD,CAAC,CACL;AAAA,KACD;AAAA;AAEL;AAEA,IAAM,WAAU,OACd,QACA,SACA,YACA,eAAe,UACY;AAAA,EAC3B,MAAM,SAAS,MAAM,OAAO,IAAI,SAAS,YAAY,KAAM;AAAA,EAC3D,IAAI,OAAO,aAAa,KAAK,cAAc;AAAA,IACzC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,IAAI,MACR,GAAG,mBAAmB,OAAO,OAAO,KAAK,KAAK,OAAO,OAAO,KAAK,KAAK,OAAO,SAAS,UAAU,OAAO,YACzG;AAAA;AAGK,IAAM,uBAAuB,OAClC,UAMI,CAAC,MAC+D;AAAA,EACpE,MAAM,aAAa,MAAM,UAAS,QAAQ,cAAc,QAAQ,KAAK,MAAM,EAAE;AAAA,EAC7E,oBAAoB,UAAU;AAAA,EAC9B,MAAM,YAAW,QAAQ,YAAY,QAAQ;AAAA,EAC7C,MAAM,SAAS,QAAQ,UAAU;AAAA,EACjC,IAAI,cAAa,SAAS;AAAA,IACxB,MAAM,SAAS,MAAK,SAAQ,SAAQ,UAAU,CAAC,GAAG,UAAU,WAAW,oBAAoB;AAAA,IAC3F,MAAM,SAAQ,QAAQ,kBAAkB;AAAA,MACtC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,OAAO,EAAE,WAAW,+BAA+B;AAAA,EACrD;AAAA,EACA,MAAM,MAAM,QAAQ,OAAO,QAAQ,SAAS;AAAA,EAC5C,MAAM,OAAO,kBAAkB;AAAA,IAC7B;AAAA,IACA;AAAA,IACA,MAAM,QAAQ,QAAQ,SAAQ;AAAA,OAC1B,QAAQ,YAAY,CAAC,IAAI,EAAE,IAAI;AAAA,EACrC,CAAC;AAAA,EACD,MAAM,OAAM,SAAQ,KAAK,KAAK,IAAI,GAAG,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAAA,EACrE,MAAM,WAAU,KAAK,KAAK,MAAM,KAAK,KAAK,SAAS,EAAE,MAAM,KAAK,KAAK,KAAK,CAAC;AAAA,EAC3E,MAAM,OAAM,KAAK,KAAK,MAAM,KAAK,KAAK,IAAI;AAAA,EAC1C,YAAY,OAAO,YAAY,KAAK,SAAS,QAAQ,GAAG;AAAA,IACtD,MAAM,SAAQ,QAAQ,QAAQ,SAAS,QAAQ,WAAW,cAAa,YAAY,UAAU,CAAC;AAAA,EAChG;AAAA,EACA,OAAO;AAAA,IACL,WAAW,KAAK,KAAK;AAAA,OACjB,KAAK,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK;AAAA,EACvD;AAAA;AASK,IAAM,uBAAuB,OAClC,UAII,CAAC,MAC6B;AAAA,EAClC,MAAM,YAAW,QAAQ,YAAY,QAAQ;AAAA,EAC7C,MAAM,SAAS,QAAQ,UAAU;AAAA,EACjC,IAAI,cAAa,SAAS;AAAA,IACxB,MAAM,UAAU;AAAA,IAChB,MAAM,QAAQ,MAAM,OAAO,IAAI,aAAa,CAAC,UAAU,aAAa,WAAW,OAAO,GAAG,GAAM;AAAA,IAC/F,IAAI,MAAM,aAAa,GAAG;AAAA,MACxB,OAAO,EAAE,SAAS,OAAO,WAAW,MAAM;AAAA,IAC5C;AAAA,IACA,MAAM,SAAQ,QAAQ,aAAa,CAAC,UAAU,WAAW,OAAO,CAAC;AAAA,IACjE,OAAO,EAAE,SAAS,MAAM,WAAW,MAAM,QAAQ;AAAA,EACnD;AAAA,EACA,IAAI,cAAa,UAAU;AAAA,IACzB,MAAM,UAAU;AAAA,IAChB,MAAM,SAAS,OAAO,QAAQ,OAAO,QAAQ,SAAS,KAAK,KAAK;AAAA,IAChE,MAAM,QAAQ,MAAM,OAAO,IAAI,aAAa,CAAC,SAAS,MAAM,GAAG,GAAM;AAAA,IACrE,IAAI,MAAM,aAAa,GAAG;AAAA,MACxB,OAAO,EAAE,SAAS,OAAO,WAAW,MAAM;AAAA,IAC5C;AAAA,IACA,MAAM,SAAQ,QAAQ,aAAa,CAAC,aAAa,MAAM,MAAM,CAAC;AAAA,IAC9D,OAAO,EAAE,SAAS,MAAM,WAAW,MAAM,QAAQ;AAAA,EACnD;AAAA,EACA,IAAI,cAAa,SAAS;AAAA,IACxB,MAAM,UAAU;AAAA,IAChB,MAAM,QAAQ,MAAM,OAAO,IAAI,gBAAgB,CAAC,UAAU,OAAO,OAAO,GAAG,GAAM;AAAA,IACjF,IAAI,MAAM,aAAa,GAAG;AAAA,MACxB,OAAO,EAAE,SAAS,OAAO,WAAW,MAAM;AAAA,IAC5C;AAAA,IACA,MAAM,SAAQ,QAAQ,gBAAgB,CAAC,QAAQ,OAAO,OAAO,GAAG,IAAI;AAAA,IACpE,MAAM,SAAQ,QAAQ,gBAAgB,CAAC,QAAQ,OAAO,OAAO,CAAC;AAAA,IAC9D,OAAO,EAAE,SAAS,MAAM,WAAW,MAAM,QAAQ;AAAA,EACnD;AAAA,EACA,OAAO,EAAE,SAAS,OAAO,WAAW,MAAM;AAAA;;;ADzK5C,IAAM,SAAS,QAAO,OAAO,MAC3B,QAAO,UAAU,kBAAkB,EAAE,UAAU,6BAA6B,CAAC,CAC/E;AAEA,IAAM,sBAAsB,QAAO,OAAO;AAAA,EACxC,eAAe,QAAO,QAAQ,CAAC;AAAA,EAC/B,eAAe,QAAO;AAAA,EACtB,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,kBAAkB;AACpB,CAAC;AAGD,IAAM,SAAS,CAAC,SACd,QAAO,IAAI,EACR,KAAK,MAAM,IAAI,EACf,MAAM,MAAM,KAAK;AAEtB,IAAM,SAAS,OAAO,SAAkC;AAAA,EACtD,MAAM,OAAO,WAAW,QAAQ;AAAA,EAChC,iBAAiB,SAAS,iBAAiB,IAAI,GAAG;AAAA,IAChD,KAAK,OAAO,KAAK;AAAA,EACnB;AAAA,EACA,OAAO,KAAK,OAAO,KAAK;AAAA;AAG1B,IAAM,qBAAqB,OAAO,MAAc,iBAAyC;AAAA,EACvF,MAAM,WAAW,MAAM,MAAM,IAAI;AAAA,EACjC,IAAI,CAAC,SAAS,OAAO,GAAG;AAAA,IACtB,MAAM,IAAI,MAAM,+CAA+C,MAAM;AAAA,EACvE;AAAA,EACA,IAAI,iBAAiB,aAAa,SAAS,OAAO,cAAc;AAAA,IAC9D,MAAM,IAAI,MAAM,+BAA+B,uBAAuB,MAAM;AAAA,EAC9E;AAAA;AAGF,IAAM,eAAe,OAAO,SAA+C;AAAA,EACzE,MAAM,mBAAmB,MAAM,KAAM;AAAA,EACrC,OAAO,QAAO,kBAAkB,mBAAmB,EAAE,KAAK,MAAM,MAAM,UAAS,MAAM,MAAM,CAAC,CAAC;AAAA;AAG/F,IAAM,gCAAgC,OAAO,SAAgC;AAAA,EAC3E,IAAI,QAAQ,aAAa,SAAS;AAAA,IAChC;AAAA,EACF;AAAA,EACA,SAAS,UAAU,MAAM,UAAS,IAAI,IAAK,UAAU,SAAQ,OAAO,GAAG;AAAA,IACrE,MAAM,WAAW,MAAM,MAAK,OAAO;AAAA,IACnC,MAAM,oBAAoB,SAAS,OAAO,QAAW;AAAA,IACrD,MAAM,UAAU,SAAS,OAAO,SAAY;AAAA,IAC5C,IAAI,oBAAoB,CAAC,QAAQ;AAAA,MAC/B,MAAM,IAAI,MACR,qGAAqG,SACvG;AAAA,IACF;AAAA,IACA,MAAM,SAAS,SAAQ,OAAO;AAAA,IAC9B,IAAI,WAAW,SAAS;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAAA;AAGF,IAAM,aAAa,OAAO,kBAA2C;AAAA,EACnE,MAAM,OAAO,MAAK,eAAe,aAAa;AAAA,EAC9C,MAAM,aAAa,QAAQ,IAAI;AAAA,EAC/B,IAAI,eAAe,WAAW;AAAA,IAC5B,OAAO;AAAA,EACT;AAAA,EACA,IAAI,CAAE,MAAM,OAAO,IAAI,GAAI;AAAA,IACzB,MAAM,IAAI,MAAM,sCAAsC,MAAM;AAAA,EAC9D;AAAA,EACA,KAAK,MAAM,MAAK,IAAI,GAAG,OAAO,KAAK;AAAA,IACjC,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAAA,EACA,QAAQ,MAAM,UAAS,MAAM,MAAM,GAAG,KAAK;AAAA;AAG7C,IAAM,iBAAiB,CAAC,SAAuB;AAAA,EAC7C,MAAM,WAAW,IAAI,aAAa,MAAM,EAAE,UAAU,KAAK,CAAC;AAAA,EAC1D,IAAI;AAAA,IACF,MAAM,SAAS,SAAS,QAAQ,oBAAoB,EAAE,IAAI;AAAA,IAC1D,IAAI,WAAW,aAAa,OAAO,OAAO,MAAM,EAAE,OAAO,MAAM;AAAA,MAC7D,MAAM,IAAI,MAAM,qCAAqC,MAAM;AAAA,IAC7D;AAAA,YACA;AAAA,IACA,SAAS,MAAM;AAAA;AAAA;AAWZ,IAAM,cAAc,OAAO,qBAAyD;AAAA,EACzF,MAAM,kBAAkB,mBAAmB;AAAA,EAC3C,MAAM,iBAAiB,MAAK,iBAAiB,WAAW;AAAA,EACxD,IAAI,CAAE,MAAM,OAAO,cAAc,GAAI;AAAA,IACnC,MAAM,IAAI,MAAM,mCAAmC,gBAAgB;AAAA,EACrE;AAAA,EACA,MAAM,cAAc,SAAQ,gBAAgB;AAAA,EAC5C,IAAI,MAAM,OAAO,WAAW,GAAG;AAAA,IAC7B,MAAM,IAAI,MAAM,sCAAsC,aAAa;AAAA,EACrE;AAAA,EACA,MAAM,8BAA8B,SAAQ,WAAW,CAAC;AAAA,EACxD,MAAM,OAAM,aAAa,EAAE,MAAM,IAAM,CAAC;AAAA,EACxC,IAAI;AAAA,IACF,MAAM,eAAe,MAAK,aAAa,WAAW;AAAA,IAClD,MAAM,iBAAiB,MAAK,aAAa,aAAa;AAAA,IACtD,MAAM,WAAW,IAAI,aAAa,gBAAgB,EAAE,UAAU,KAAK,CAAC;AAAA,IACpE,IAAI;AAAA,MACF,MAAM,aAAa,UAAU,YAAY;AAAA,cACzC;AAAA,MACA,SAAS,MAAM;AAAA;AAAA,IAEjB,eAAe,YAAY;AAAA,IAC3B,MAAM,QAAQ,MAAM,WAAW,eAAe;AAAA,IAC9C,IAAI,MAAM,SAAS,MAAM,IAAI,YAAY,EAAE,OAAO,KAAK,EAAE,aAAa,KAAK;AAAA,MACzE,MAAM,IAAI,MAAM,6DAA6D;AAAA,IAC/E;AAAA,IACA,MAAM,WAAU,gBAAgB,GAAG;AAAA,GAAW,EAAE,MAAM,IAAM,CAAC;AAAA,IAC7D,MAAM,QAAQ,IAAI,CAAC,OAAM,cAAc,GAAK,GAAG,OAAM,gBAAgB,GAAK,CAAC,CAAC;AAAA,IAC5E,MAAM,YAAY,UAAU,KAAK,IAAI,KAAK,EAAE,YAAY,CAAC;AAAA,IACzD,MAAM,WAAW,oBAAoB,KAAK;AAAA,MACxC,eAAe;AAAA,MACf,eAAe;AAAA,MACf;AAAA,MACA,gBAAgB,MAAM,OAAO,YAAY;AAAA,MACzC,kBAAkB,MAAM,OAAO,cAAc;AAAA,IAC/C,CAAC;AAAA,IACD,MAAM,WAAU,MAAK,aAAa,eAAe,GAAG,GAAG,KAAK,UAAU,UAAU,MAAM,CAAC;AAAA,GAAO;AAAA,MAC5F,MAAM;AAAA,IACR,CAAC;AAAA,IACD,OAAO;AAAA,MACL,kBAAkB;AAAA,MAClB,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,SACE;AAAA,IACJ;AAAA,IACA,OAAO,OAAO;AAAA,IACd,MAAM,IAAG,aAAa,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,IACtD,MAAM;AAAA;AAAA;AAWH,IAAM,eAAe,OAAO,gBAAqD;AAAA,EACtF,MAAM,SAAS,SAAQ,WAAW;AAAA,EAClC,MAAM,iBAAiB,MAAK,QAAQ,WAAW;AAAA,EAC/C,MAAM,mBAAmB,MAAK,QAAQ,aAAa;AAAA,EACnD,MAAM,iBAAiB,MAAK,QAAQ,eAAe;AAAA,EACnD,WAAW,QAAQ,CAAC,gBAAgB,kBAAkB,cAAc,GAAG;AAAA,IACrE,IAAI,CAAE,MAAM,OAAO,IAAI,GAAI;AAAA,MACzB,MAAM,IAAI,MAAM,2BAA2B,SAAS,IAAI,GAAG;AAAA,IAC7D;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,IAAI;AAAA,IAChB,mBAAmB,cAAc;AAAA,IACjC,mBAAmB,kBAAkB,IAAK;AAAA,IAC1C,mBAAmB,gBAAgB,KAAM;AAAA,EAC3C,CAAC;AAAA,EAED,MAAM,SAAS,mBAAmB;AAAA,EAClC,IAAI,MAAM,OAAO,MAAM,GAAG;AAAA,IACxB,MAAM,IAAI,MACR,wCAAwC,6CAC1C;AAAA,EACF;AAAA,EACA,MAAM,SAAS,SAAQ,MAAM;AAAA,EAC7B,MAAM,OAAM,QAAQ,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAAA,EACpD,MAAM,UAAU,MAAM,SAAQ,MAAK,QAAQ,IAAI,SAAS,MAAM,YAAY,CAAC;AAAA,EAC3E,IAAI,gBAAgB;AAAA,EACpB,IAAI;AAAA,IACF,MAAM,OAAM,SAAS,GAAK;AAAA,IAC1B,MAAM,eAAe,MAAK,SAAS,WAAW;AAAA,IAC9C,MAAM,iBAAiB,MAAK,SAAS,aAAa;AAAA,IAClD,MAAM,eAAe,MAAK,SAAS,yBAAyB;AAAA,IAC5D,MAAM,QAAQ,IAAI;AAAA,MAChB,SAAS,gBAAgB,YAAY;AAAA,MACrC,SAAS,kBAAkB,cAAc;AAAA,MACzC,SAAS,gBAAgB,YAAY;AAAA,IACvC,CAAC;AAAA,IACD,MAAM,QAAQ,IAAI;AAAA,MAChB,OAAM,cAAc,GAAK;AAAA,MACzB,OAAM,gBAAgB,GAAK;AAAA,MAC3B,OAAM,cAAc,GAAK;AAAA,IAC3B,CAAC;AAAA,IACD,MAAM,WAAW,MAAM,aAAa,YAAY;AAAA,IAChD,IACG,MAAM,OAAO,YAAY,MAAO,SAAS,kBACzC,MAAM,OAAO,cAAc,MAAO,SAAS,kBAC5C;AAAA,MACA,MAAM,IAAI,MAAM,2CAA2C;AAAA,IAC7D;AAAA,IACA,eAAe,YAAY;AAAA,IAC3B,MAAM,SAAS,MAAM,UAAS,gBAAgB,MAAM,GAAG,KAAK;AAAA,IAC5D,IAAI,MAAM,SAAS,MAAM,IAAI,YAAY,EAAE,OAAO,KAAK,EAAE,aAAa,KAAK;AAAA,MACzE,MAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AAAA,IACA,gBAAgB,SAAS;AAAA,IACzB,MAAM,QAAO,SAAS,MAAM;AAAA,IAC5B,OAAO,OAAO;AAAA,IACd,MAAM,IAAG,SAAS,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,IAClD,MAAM;AAAA;AAAA,EAER,OAAO;AAAA,IACL,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,MAAM;AAAA,EACR;AAAA;AAGF,IAAM,eAAe,CAAC,aAA6B;AAAA,EACjD,MAAM,MAAM,IAAI,IAAI,QAAQ;AAAA,EAC5B,IAAI,WAAW,IAAI,aAAa,WAAW,SAAS;AAAA,EACpD,IAAI,WAAW;AAAA,EACf,OAAO,IAAI,SAAS;AAAA;AAGtB,IAAM,aAAa,CAAC,QAClB,IAAI,aAAa,eACjB,IAAI,aAAa,WACjB,wBAAwB,KAAK,IAAI,QAAQ;AAE3C,IAAM,yBAAyB,OAAO,UAAkB,UAAiC;AAAA,EACvF,MAAM,QAAO,WAAW,YAAY,KAAK,EAAE,SAAS,UAAU,MAAM,CAAC,EAAE,QAAQ,CAAC;AAAA;AAGlF,IAAM,yBAAyB,CAAC,UAAkB,UAChD,IAAI,QAAQ,CAAC,gBAAgB,WAAW;AAAA,EACtC,MAAM,SAAS,IAAI,UAAU,aAAa,QAAQ,GAAG;AAAA,IACnD,kBAAkB;AAAA,IAClB,YAAY,OAAO;AAAA,IACnB,mBAAmB;AAAA,EACrB,CAAC;AAAA,EACD,IAAI,UAAU;AAAA,EACd,MAAM,SAAS,CAAC,UAAwB;AAAA,IACtC,IAAI,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,UAAU;AAAA,IACV,aAAa,OAAO;AAAA,IACpB,OAAO,UAAU;AAAA,IACjB,IAAI,UAAU,WAAW;AAAA,MACvB,eAAe;AAAA,MACf;AAAA,IACF;AAAA,IACA,OAAO,KAAK;AAAA;AAAA,EAEd,MAAM,UAAU,WACd,MAAM,OAAO,IAAI,MAAM,iDAAiD,CAAC,GACzE,GACF;AAAA,EACA,OAAO,KAAK,QAAQ,MAAM;AAAA,IACxB,OAAO,KAAK,KAAK,UAAU,YAAY,KAAK,EAAE,MAAM,gBAAgB,MAAM,CAAC,CAAC,CAAC;AAAA,GAC9E;AAAA,EACD,OAAO,GAAG,WAAW,CAAC,SAAS;AAAA,IAC7B,IAAI;AAAA,MACF,MAAM,QAAQ,QAAO,kBAAkB,WAAW,EAAE,KAAK,MAAM,KAAK,SAAS,CAAC,CAAY;AAAA,MAC1F,IAAI,MAAM,SAAS,aAAa;AAAA,QAC9B,OAAO;AAAA,MACT,EAAO,SAAI,MAAM,SAAS,SAAS;AAAA,QACjC,OAAO,IAAI,MAAM,MAAM,OAAO,CAAC;AAAA,MACjC;AAAA,MACA,OAAO,OAAO;AAAA,MACd,OAAO,IAAI,MAAM,kDAAkD,OAAO,KAAK,GAAG,CAAC;AAAA;AAAA,GAEtF;AAAA,EACD,OAAO,KAAK,SAAS,CAAC,UAAU,OAAO,KAAK,CAAC;AAAA,EAC7C,OAAO,KAAK,SAAS,MAAM,OAAO,IAAI,MAAM,iDAAiD,CAAC,CAAC;AAAA,CAChG;AAUI,IAAM,cAAc,OAAO,YAOA;AAAA,EAChC,IAAI,QAAQ,IAAI,qBAAqB,WAAW;AAAA,IAC9C,MAAM,IAAI,MAAM,6DAA6D;AAAA,EAC/E;AAAA,EACA,MAAM,gBAAgB,MAAM,wBAAwB;AAAA,EACpD,IAAI,kBAAkB,WAAW;AAAA,IAC/B,MAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AAAA,EACA,MAAM,WAAW,kBAAkB,QAAQ,QAAQ;AAAA,EACnD,MAAM,iBAAiB,IAAI,IAAI,QAAQ;AAAA,EACvC,IACE,eAAe,aAAa,WAC5B,CAAC,WAAW,cAAc,KAC1B,QAAQ,cAAc,MACtB;AAAA,IACA,MAAM,IAAI,MACR,sIACF;AAAA,EACF;AAAA,EACA,MAAM,eAAe,CAAC,cAAc,aAAa,QAAQ,IAAI,mBAAmB,EAAE,OAChF,CAAC,UAA2B,UAAU,SACxC;AAAA,EACA,MAAM,eAAe,CAAC,cAAc,aAAa,QAAQ,IAAI,mBAAmB,EAAE,OAChF,CAAC,UAA2B,UAAU,SACxC;AAAA,EACA,IAAI,aAAa,WAAW,KAAK,aAAa,WAAW,GAAG;AAAA,IAC1D,MAAM,IAAI,MAAM,kEAAkE;AAAA,EACpF;AAAA,EACA,MAAM,QAAoC,CAAC;AAAA,EAC3C,IAAI,aAAa,SAAS,GAAG;AAAA,IAC3B,WAAW,SAAS,IAAI,IAAI,YAAY,GAAG;AAAA,MACzC,OAAO,QAAQ,gBAAgB,wBAAwB,UAAU,KAAK;AAAA,IACxE;AAAA,IACA,MAAM,KAAK,QAAQ;AAAA,EACrB;AAAA,EACA,IAAI,aAAa,SAAS,GAAG;AAAA,IAC3B,WAAW,SAAS,IAAI,IAAI,YAAY,GAAG;AAAA,MACzC,OAAO,QAAQ,gBAAgB,wBAAwB,UAAU,KAAK;AAAA,IACxE;AAAA,IACA,MAAM,KAAK,QAAQ;AAAA,EACrB;AAAA,EACA,MAAM,UAAU,cAAc,aAAa;AAAA,EAC3C,IAAI,SAAS;AAAA,IACX,MAAM,yBAAyB,oBAAoB,KAAK,KAAK,eAAe,SAAS,CAAC,CAAC;AAAA,EACzF;AAAA,EACA,IAAI,UAAgC,EAAE,SAAS,OAAO,WAAW,MAAM;AAAA,EACvE,IAAI;AAAA,EACJ,IAAI,WAAW,QAAQ,WAAW,aAAa,SAAS,GAAG;AAAA,IACzD,UAAU,OAAO,QAAQ,kBAAkB,sBAAsB,EAAE,MAAM,CAAC,UAAmB;AAAA,MAC3F,UAAU,gEAAgE,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MAC/H,OAAO,EAAE,SAAS,MAAM,WAAW,MAAM;AAAA,KAC1C;AAAA,EACH;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB;AAAA,OACI,YAAY,YAAY,CAAC,IAAI,EAAE,QAAQ;AAAA,EAC7C;AAAA;;;AR9UF,IAAM,eAAe,IAAI,IAAI;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACD,IAAM,cAAc,IAAI,IAAI;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACD,IAAM,UAAU,IAAI,IAAI;AAAA,EACtB,CAAC,MAAM,SAAS;AAAA,EAChB,CAAC,MAAM,QAAQ;AAAA,EACf,CAAC,MAAM,QAAQ;AAAA,EACf,CAAC,MAAM,QAAQ;AAAA,EACf,CAAC,MAAM,WAAW;AACpB,CAAC;AAED,IAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4Cb,IAAM,iBAAiB,CAAC,WAA6C;AAAA,EACnE,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,cAA6B,CAAC;AAAA,EACpC,SAAS,QAAQ,EAAG,QAAQ,OAAO,QAAQ,SAAS,GAAG;AAAA,IACrD,MAAM,WAAW,OAAO;AAAA,IACxB,IAAI,aAAa,WAAW;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,IAAI,aAAa,MAAM;AAAA,MACrB,YAAY,KAAK,GAAG,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,IAAI,CAAC,SAAS,WAAW,GAAG,GAAG;AAAA,MAC7B,YAAY,KAAK,QAAQ;AAAA,MACzB;AAAA,IACF;AAAA,IACA,MAAM,YAAY,SAAS,QAAQ,GAAG;AAAA,IACtC,MAAM,UAAU,cAAc,KAAK,WAAW,SAAS,MAAM,GAAG,SAAS;AAAA,IACzE,MAAM,SAAS,cAAc,KAAK,YAAY,SAAS,MAAM,YAAY,CAAC;AAAA,IAC1E,MAAM,OAAO,QAAQ,IAAI,OAAO,KAAK,QAAQ,QAAQ,OAAO,EAAE;AAAA,IAC9D,IAAI,YAAY,IAAI,IAAI,GAAG;AAAA,MACzB,IAAI,WAAW,WAAW;AAAA,QACxB,MAAM,IAAI,MAAM,KAAK,8BAA8B;AAAA,MACrD;AAAA,MACA,QAAQ,IAAI,MAAM,IAAI;AAAA,MACtB;AAAA,IACF;AAAA,IACA,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG;AAAA,MAC3B,MAAM,IAAI,MAAM,mBAAmB,UAAU;AAAA,IAC/C;AAAA,IACA,MAAM,QAAQ,UAAU,OAAO,QAAQ;AAAA,IACvC,IAAI,UAAU,aAAc,WAAW,aAAa,MAAM,WAAW,GAAG,KAAK,UAAU,KAAM;AAAA,MAC3F,MAAM,IAAI,MAAM,GAAG,0BAA0B;AAAA,IAC/C;AAAA,IACA,MAAM,WAAW,QAAQ,IAAI,IAAI;AAAA,IACjC,QAAQ,IAAI,MAAM,aAAa,aAAa,aAAa,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,UAAU,KAAK,CAAC;AAAA,IAC9F,IAAI,WAAW,WAAW;AAAA,MACxB,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,OAAO,EAAE,SAAS,YAAY;AAAA;AAGhC,IAAM,SAAS,CAAC,YAAuB,SAAwC;AAAA,EAC7E,MAAM,SAAS,WAAW,QAAQ,IAAI,IAAI;AAAA,EAC1C,IAAI,WAAW,MAAM;AAAA,IACnB,MAAM,IAAI,MAAM,KAAK,uBAAuB;AAAA,EAC9C;AAAA,EACA,OAAO,UAAU,CAAC;AAAA;AAEpB,IAAM,SAAS,CAAC,YAAuB,SAAqC;AAAA,EAC1E,MAAM,QAAQ,OAAO,YAAY,IAAI;AAAA,EACrC,IAAI,MAAM,SAAS,KAAK,SAAS,aAAa;AAAA,IAC5C,MAAM,IAAI,MAAM,KAAK,iCAAiC;AAAA,EACxD;AAAA,EACA,OAAO,MAAM;AAAA;AAEf,IAAM,eAAe,CAAC,YAAuB,UAAuC;AAAA,EAClF,MAAM,UAAU,IAAI,IAAI,KAAK;AAAA,EAC7B,WAAW,QAAQ,WAAW,QAAQ,KAAK,GAAG;AAAA,IAC5C,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG;AAAA,MACtB,MAAM,IAAI,MAAM,KAAK,oCAAoC;AAAA,IAC3D;AAAA,EACF;AAAA;AAEF,IAAM,gBAAgB,CAAC,YAAuB,YAA0B;AAAA,EACtE,IAAI,WAAW,YAAY,SAAS,GAAG;AAAA,IACrC,MAAM,IAAI,MAAM,GAAG,8CAA8C;AAAA,EACnE;AAAA;AAEF,IAAM,aAAa,CAAC,YAAuB,UAA0B;AAAA,EACnE,MAAM,QAAQ,WAAW,YAAY;AAAA,EACrC,IAAI,UAAU,WAAW;AAAA,IACvB,MAAM,IAAI,MAAM,GAAG,mBAAmB;AAAA,EACxC;AAAA,EACA,IAAI,WAAW,YAAY,SAAS,GAAG;AAAA,IACrC,MAAM,IAAI,MAAM,8BAA8B,OAAO;AAAA,EACvD;AAAA,EACA,OAAO;AAAA;AAET,IAAM,QAAQ,CAAC,UAAyB,QAAQ,IAAI,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAClF,IAAM,YAAY,CAAC,UAAyB,QAAQ,IAAI,KAAK,UAAU,KAAK,CAAC;AAE7E,IAAM,YAAY,OAChB,YACA,SACgC;AAAA,EAChC,MAAM,SAAS,OAAO,YAAY,IAAI;AAAA,EACtC,MAAM,OAAO,OAAO,YAAY,GAAG,WAAW;AAAA,EAC9C,MAAM,YAAY,SAAS,YAAY,IAAI,SAAU;AAAA,EACrD,IAAI,WAAW,aAAa,SAAS,WAAW;AAAA,IAC9C,MAAM,IAAI,MAAM,gBAAgB,aAAa,qBAAqB;AAAA,EACpE;AAAA,EACA,IAAI,SAAS,WAAW;AAAA,IACtB,IACE,CAAE,MAAM,QAAO,IAAI,EAChB,KAAK,MAAM,IAAI,EACf,MAAM,MAAM,KAAK,GACpB;AAAA,MACA,MAAM,IAAI,MAAM,wBAAwB,MAAM;AAAA,IAChD;AAAA,IACA,KAAK,MAAM,MAAK,IAAI,GAAG,OAAO,WAAW;AAAA,MACvC,MAAM,IAAI,MAAM,GAAG,qBAAqB,YAAY,UAAU;AAAA,IAChE;AAAA,EACF;AAAA,EACA,MAAM,SACJ,SAAS,YACL,WAAW,MACT,MAAM,UAAU,WAAW,IAAI,IAC/B,SACF,MAAM,UAAS,MAAM,MAAM;AAAA,EACjC,IAAI,WAAW,aAAa,OAAO,SAAS,QAAS;AAAA,IACnD,MAAM,IAAI,MAAM,GAAG,gCAAgC;AAAA,EACrD;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,YAAY,OAAO,OAAe,UAAmC;AAAA,EACzE,MAAM,SAAwB,CAAC;AAAA,EAC/B,IAAI,OAAO;AAAA,EACX,iBAAiB,SAAS,QAAQ,OAAO;AAAA,IACvC,MAAM,QAAQ,OAAO,UAAU,WAAW,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK;AAAA,IAChF,QAAQ,MAAM;AAAA,IACd,IAAI,OAAO,OAAO;AAAA,MAChB,MAAM,IAAI,MAAM,GAAG,iBAAiB,KAAK,MAAM,QAAQ,IAAI,OAAO;AAAA,IACpE;AAAA,IACA,OAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,OAAO,OAAO,OAAO,QAAQ,IAAI,EAAE,SAAS,MAAM;AAAA;AAGpD,IAAM,UAAU,CAAC,eAAkC;AAAA,EACjD,MAAM,UAAU,OAAO,OAAO,YAAY,SAAS,KAAK,KAAK;AAAA,EAC7D,IAAI,CAAC,OAAO,UAAU,OAAO,KAAK,UAAU,KAAK,UAAU,OAAQ;AAAA,IACjE,MAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,eAAe,OAAO,eAA2C;AAAA,EACrE,MAAM,OAAO,OAAO,YAAY,YAAY;AAAA,EAC5C,IACE,SAAS,aACT,CAAE,MAAM,QAAO,IAAI,EAChB,KAAK,MAAM,IAAI,EACf,MAAM,MAAM,KAAK,GACpB;AAAA,IACA,MAAM,IAAI,MAAM,sCAAsC,MAAM;AAAA,EAC9D;AAAA,EACA,IAAI,SAAS,cAAc,MAAM,MAAK,IAAI,GAAG,OAAO,KAAK;AAAA,IACvD,MAAM,IAAI,MAAM,sCAAsC;AAAA,EACxD;AAAA,EACA,MAAM,SACJ,SAAS,YAAY,MAAM,UAAU,KAAK,eAAe,IAAI,MAAM,UAAS,MAAM,MAAM,GACxF,KAAK;AAAA,EACP,IAAI,MAAM,WAAW,KAAK,IAAI,YAAY,EAAE,OAAO,KAAK,EAAE,aAAa,KAAK;AAAA,IAC1E,MAAM,IAAI,MAAM,uDAAuD;AAAA,EACzE;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,SAAS,YAAY;AAAA,EACzB,MAAM,gBAAgB,MAAM,QAAO,WAAW,uBAAuB;AAAA,EACrE,OAAO;AAAA,IACL;AAAA,IACA,OAAO,YAAY,KAAK,EAAE,SAAS,cAAc,UAAU,OAAO,cAAc,MAAM,CAAC;AAAA,EACzF;AAAA;AAGF,IAAM,cAAc,YAAY;AAAA,EAC9B,MAAM,gBAAgB,MAAM,QAAO,WAAW,sBAAsB;AAAA,EACpE,OAAO;AAAA,IACL;AAAA,IACA,OAAO,YAAY,KAAK,EAAE,SAAS,cAAc,UAAU,OAAO,cAAc,MAAM,CAAC;AAAA,EACzF;AAAA;AAGF,IAAM,eAAe,OAAO,WAAmD;AAAA,EAC7E,MAAM,QAAQ;AAAA,IACZ,QAAQ,MAAK,SAAQ,GAAG,WAAW,UAAU,UAAU,UAAU;AAAA,IACjE,QAAQ,MAAK,SAAQ,GAAG,WAAW,UAAU,UAAU,UAAU;AAAA,IACjE,UAAU,MAAK,SAAQ,GAAG,WAAW,YAAY,UAAU,UAAU,UAAU;AAAA,EACjF;AAAA,EACA,MAAM,WACJ,WAAW,QACP,OAAO,OAAO,KAAK,KACnB,UAAU,SACR,CAAC,MAAM,OAA6B,IACpC;AAAA,EACR,IAAI,aAAa,WAAW;AAAA,IAC1B,MAAM,IAAI,MAAM,uDAAuD;AAAA,EACzE;AAAA,EACA,WAAW,QAAQ,UAAU;AAAA,IAC3B,MAAM,OAAM,SAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IAC9C,MAAM,WAAU,MAAM,aAAK;AAAA,EAC7B;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,YAAY,MAAY,QAAQ,IAAI,IAAI;AAC9C,IAAM,aAAa,MAAY,QAAQ,IAAI,cAAM,QAAQ,CAAC;AAE1D,IAAM,SAAS,OAAO,SAAiB,QAA8C;AAAA,EAC1F,MAAM,aAAa,eAAe,GAAG;AAAA,EAErC,IAAI,YAAY,SAAS;AAAA,IACvB,aAAa,YAAY,CAAC,WAAW,gBAAgB,OAAO,CAAC;AAAA,IAC7D,MAAM,KAAK,SAAO,kBAAkB,MAAM,EAAE,WAAW,YAAY,SAAS,CAAC;AAAA,IAC7E,MAAM,QAAQ,OAAO,YAAY,OAAO;AAAA,IACxC,IACE,UAAU,cACT,OAAO,YAAY,SAAS,MAAM,aACjC,OAAO,YAAY,cAAc,MAAM,YACzC;AAAA,MACA,MAAM,IAAI,MAAM,0DAA0D;AAAA,IAC5E;AAAA,IACA,MAAM,UAAU,UAAU,YAAY,MAAM,UAAU,YAAY,SAAS,IAAI;AAAA,IAC/E,IAAI,UAAU,aAAa,YAAY,WAAW;AAAA,MAChD,MAAM,IAAI,MAAM,4DAA4D;AAAA,IAC9E;AAAA,IACA,MAAM,cAAc,IAAI,UAAU,YAAY,EAAE,QAAQ,WAAW,GAAG,IAAI,EAAE,MAAM,CAAC;AAAA,IACnF,MAAM,EAAE,WAAW,MAAM,SAAS,GAAG,CAAC;AAAA,IACtC;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,QAAQ;AAAA,IACtB,aAAa,YAAY;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,cAAc,YAAY,OAAO;AAAA,IACjC,MAAM,QACJ,OAAO,YAAY,YAAY,MAAM,YAAY,YAAY,MAAM,aAAa,UAAU;AAAA,IAC5F,MAAM,cAAc,QAAQ,MAAM,UAAU,QAAQ,QAAQ,OAAO,UAAU;AAAA,IAC7E,MAAM,WAAW,OAAO,YAAY,OAAO;AAAA,IAC3C,MAAM,aAAa,OAAO,YAAY,MAAM;AAAA,IAC5C,MAAM,gBAAgB,OAAO,YAAY,WAAW;AAAA,IACpD,MAAM,WAAqB,cACvB,iBAAiB,IACjB;AAAA,MACE,QAAQ,CAAC,QAAQ,aAAa,QAAQ,QAAQ,QAAQ;AAAA,MACtD,QAAQ,MAAM,aAAa,UAAU;AAAA,MACrC,OAAO,MAAG;AAAA,QAAG;AAAA;AAAA,IACf;AAAA,IACJ,IAAI;AAAA,MACF,MAAM,QAAQ,MAAM,iBAClB;AAAA,QACE,YAAY,WAAW,QAAQ,IAAI,aAAa;AAAA,QAChD,YAAY,OAAO,YAAY,WAAW;AAAA,QAC1C,KAAK,QAAQ,IAAI;AAAA,WACb,aAAa,YAAY,CAAC,IAAI,EAAE,SAAS;AAAA,WACzC,UAAU,YAAY,CAAC,IAAI,EAAE,MAAM;AAAA,WACnC,eAAe,YAAY,CAAC,IAAI,EAAE,WAAW;AAAA,WAC7C,kBAAkB,YAAY,CAAC,IAAI,EAAE,WAAW,cAAc;AAAA,MACpE,GACA,QACF;AAAA,MACA,MAAM,YAAY,MAAM,cAAc,SAAS,SAAS,eAAe,MAAM,SAAS;AAAA,MACtF,MAAM,WAAW,MAAM,wBAAwB;AAAA,MAC/C,MAAM,SAAS,MAAM,sBACjB;AAAA,QACE,eAAe,MAAM,wBAAwB;AAAA,UAC3C,UAAU,MAAM;AAAA,aACZ,MAAM,eAAe,YAAY,CAAC,IAAI,EAAE,YAAY,MAAM,WAAW;AAAA,UACzE,YAAY,MAAM;AAAA,UAClB;AAAA,QACF,CAAC;AAAA,QACD,OAAO;AAAA,UACL,GAAI,UAAU,gBAAgB,YAAY,CAAC,IAAK,CAAC,QAAQ;AAAA,UACzD,GAAI,WAAW,QAAQ,IAAI,aAAa,KAAK,UAAU,gBAAgB,YACnE,CAAC,IACA,CAAC,QAAQ;AAAA,QAChB;AAAA,MACF,IACA,MAAM,UAAU;AAAA,QACd,UAAU,MAAM;AAAA,QAChB,OAAO,MAAM,SAAS;AAAA,QACtB,YAAY,WAAW,QAAQ,IAAI,aAAa;AAAA,WAC5C,MAAM,eAAe,YAAY,CAAC,IAAI,EAAE,YAAY,MAAM,WAAW;AAAA,QACzE,YAAY,MAAM;AAAA,QAClB;AAAA,MACF,CAAC;AAAA,MACL,IAAI,MAAM,qBAAqB;AAAA,QAC7B,MAAM,yBAAyB,OAAO,aAAa;AAAA,MACrD;AAAA,MACA,MAAM,kBAAkB,MAAM,aAAa,KAAK;AAAA,MAChD,MAAM,UAAU,WAAW,QAAQ,IAAI,SAAS,IAAI,MAAM,qBAAqB,IAAI;AAAA,MACnF,MAAM;AAAA,QACJ,aAAa;AAAA,QACb,sBAAsB,MAAM;AAAA,QAC5B,aAAa,kBAAkB;AAAA,QAC/B,WAAW,OAAO,cAAc;AAAA,QAChC,WAAW,OAAO,cAAc;AAAA,QAChC,OAAO,OAAO;AAAA,QACd,YAAY,OAAO,cAAc;AAAA,QACjC,QAAQ;AAAA,WACJ,YAAY,YAAY,CAAC,IAAI,EAAE,QAAQ;AAAA,QAC3C,MACE,YAAY,aAAa,CAAC,WAAW,QAAQ,IAAI,aAAa,IAC1D,sFACA;AAAA,MACR,CAAC;AAAA,cACD;AAAA,MACA,SAAS,MAAM;AAAA;AAAA,IAEjB;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,WAAW;AAAA,IACzB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,IAAI,WAAW,YAAY,WAAW,KAAK,WAAW,YAAY,OAAO,WAAW;AAAA,MAClF,MAAM,IAAI,MAAM,+BAA+B;AAAA,IACjD;AAAA,IACA,MAAM,MAAM,qBAAqB,CAAC;AAAA,IAClC;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,SAAS;AAAA,IACvB,MAAM,SAAS,WAAW,YAAY;AAAA,IACtC,IAAI,WAAW,UAAU;AAAA,MACvB,aAAa,YAAY,CAAC,CAAC;AAAA,MAC3B,IAAI,WAAW,YAAY,WAAW,GAAG;AAAA,QACvC,MAAM,IAAI,MAAM,wCAAwC;AAAA,MAC1D;AAAA,MACA,MAAM,MAAM,YAAY,WAAW,YAAY,MAAM,EAAE,CAAC;AAAA,MACxD;AAAA,IACF;AAAA,IACA,IAAI,WAAW,WAAW;AAAA,MACxB,aAAa,YAAY,CAAC,CAAC;AAAA,MAC3B,IAAI,WAAW,YAAY,WAAW,GAAG;AAAA,QACvC,MAAM,IAAI,MAAM,yCAAyC;AAAA,MAC3D;AAAA,MACA,MAAM,MAAM,aAAa,WAAW,YAAY,MAAM,EAAE,CAAC;AAAA,MACzD;AAAA,IACF;AAAA,IACA,IAAI,WAAW,OAAO;AAAA,MACpB,aAAa,YAAY,CAAC,cAAc,YAAY,CAAC;AAAA,MACrD,IAAI,WAAW,YAAY,WAAW,GAAG;AAAA,QACvC,MAAM,IAAI,MAAM,6DAA6D;AAAA,MAC/E;AAAA,MACA,MACE,MAAM,YAAY;AAAA,QAChB,UAAU,WAAW,YAAY,MAAM;AAAA,QACvC,SAAS,CAAC,WAAW,QAAQ,IAAI,YAAY;AAAA,QAC7C,WAAW,WAAW,QAAQ,IAAI,YAAY;AAAA,MAChD,CAAC,CACH;AAAA,MACA;AAAA,IACF;AAAA,IACA,MAAM,IAAI,MACR,sGACF;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,WAAW;AAAA,IACzB,aAAa,YAAY,CAAC,OAAO,WAAW,cAAc,IAAI,CAAC;AAAA,IAC/D,cAAc,YAAY,OAAO;AAAA,IACjC,MAAM,SAAS,OAAO,YAAY,IAAI;AAAA,IACtC,IAAI,WAAW,QAAQ,IAAI,KAAK,GAAG;AAAA,MACjC,MAAM,mBAAmB,uBAAuB,MAAM;AAAA,MACtD,QAAQ,kBAAU,MAAM,YAAY;AAAA,MACpC,MAAM,UAAU,CAAC,WAAW,QAAQ,IAAI,YAAY;AAAA,MACpD,IAAI,WAAW,QAAQ,IAAI,SAAS,GAAG;AAAA,QACrC,MAAM,UAAU,MAAM,QAAO,WAAW,OAAM,QAAQ,CAAC;AAAA,QACvD,6BAA6B,OAAO;AAAA,QACpC,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,mBAAmB;AAAA,UACnB;AAAA,UACA,SAAS,QAAQ,IAAI,CAAC,YAAY,EAAE,IAAI,OAAO,IAAI,MAAM,OAAO,KAAK,EAAE;AAAA,QACzE,CAAC;AAAA,QACD;AAAA,MACF;AAAA,MACA,MAAM,aAAa,MAAM,QAAO,WAC9B,OAAM,wBAAwB,EAAE,QAAQ,kBAAkB,QAAQ,CAAC,CACrE;AAAA,MACA,MAAM;AAAA,QACJ,QAAQ,WAAW;AAAA,QACnB,mBAAmB;AAAA,QACnB;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACR,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA,MACE,MAAM,QAAQ;AAAA,MACZ,gBAAgB;AAAA,SACZ,WAAW,YAAY,CAAC,IAAI,EAAE,OAAO;AAAA,MACzC,SAAS,CAAC,WAAW,QAAQ,IAAI,YAAY;AAAA,MAC7C,QAAQ,WAAW,QAAQ,IAAI,SAAS;AAAA,MACxC,WAAW,QAAQ,IAAI,oBAAoB;AAAA,IAC7C,CAAC,CACH;AAAA,IACA;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,YAAY;AAAA,IAC1B,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,QAAQ,kBAAU,MAAM,YAAY;AAAA,IACpC,IAAI,WAAW,YAAY,SAAS,GAAG;AAAA,MACrC,IAAI,WAAW,YAAY,WAAW,KAAK,WAAW,YAAY,OAAO,WAAW;AAAA,QAClF,MAAM,IAAI,MAAM,iDAAiD;AAAA,MACnE;AAAA,MACA,MACE,MAAM,QAAO,WACX,OAAM,iBAAiB,SAAO,kBAAkB,WAAW,EAAE,WAAW,YAAY,EAAE,CAAC,CACzF,CACF;AAAA,MACA;AAAA,IACF;AAAA,IACA,MAAM,MAAM,QAAO,WAAW,OAAM,WAAW,CAAC,CAAC;AAAA,IACjD;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,QAAQ;AAAA,IACtB,aAAa,YAAY;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,cAAc,YAAY,OAAO;AAAA,IACjC,MAAM,QAAQ,MAAM,aAAa,UAAU;AAAA,IAC3C,MAAM,WAAW,kBAAkB,OAAO,YAAY,OAAO,KAAK,uBAAuB;AAAA,IACzF,MAAM,WAAW,MAAM,wBAAwB;AAAA,IAC/C,MAAM,qBAAqB,OAAO,YAAY,WAAW;AAAA,IACzD,MAAM,aAAa,mBAAmB,WAAW,IAAI,UAAU,aAAa;AAAA,IAC5E,MAAM,aAAa,OAAO,YAAY,MAAM;AAAA,IAC5C,MAAM,gBAAgB,OAAO,YAAY,WAAW;AAAA,IACpD,MAAM,YACJ,kBAAkB,YACd,YACA,kBAAkB,SAChB,SACA,eAAe,aAAa;AAAA,IACpC,IAAI,CAAC,WAAW,QAAQ,IAAI,aAAa,MAAM,YAAY,UAAU,OAAO,GAAG;AAAA,MAC7E,MAAM,IAAI,MAAM,4DAA4D;AAAA,IAC9E;AAAA,IACA,MAAM,aAAa,WAAW,QAAQ,IAAI,aAAa;AAAA,IACvD,QAAQ,+BAAe,UAAU,MAAM,UAAU;AAAA,MAC/C;AAAA,MACA;AAAA,MACA;AAAA,SACI,eAAe,YAAY,CAAC,IAAI,EAAE,WAAW;AAAA,SAC7C,eAAe,YAAY,CAAC,IAAI,EAAE,WAAW;AAAA,SAC7C,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU;AAAA,IACjD,CAAC;AAAA,IACD,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,aAAa,kBAAkB;AAAA,MAC/B,WAAW,eAAc;AAAA,MACzB,WAAW,eAAc;AAAA,MACzB;AAAA,MACA,YAAY,eAAc;AAAA,IAC5B,CAAC;AAAA,IACD;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,UAAU;AAAA,IACxB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,cAAc,YAAY,OAAO;AAAA,IACjC,MAAM,iBAAgB,MAAM,wBAAwB;AAAA,IACpD,MAAM;AAAA,MACJ,aAAa,kBAAkB;AAAA,MAC/B,YAAY,mBAAkB;AAAA,SAC1B,mBAAkB,YAClB,CAAC,IACD;AAAA,QACE,WAAW,eAAc;AAAA,QACzB,WAAW,eAAc;AAAA,QACzB,aAAa,eAAc;AAAA,QAC3B,YAAY,eAAc;AAAA,QAC1B,mBAAmB,eAAc,gBAAgB;AAAA,QACjD,mBAAmB,eAAc,gBAAgB;AAAA,QACjD,WAAW,eAAc,aAAa;AAAA,QACtC,OAAO,eAAc;AAAA,QACrB,SAAS,eAAc;AAAA,QACvB,cAAc,eAAc;AAAA,MAC9B;AAAA,IACN,CAAC;AAAA,IACD;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,aAAa;AAAA,IAC3B,aAAa,YAAY;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,cAAc,YAAY,OAAO;AAAA,IACjC,MAAM,WAAW,MAAM,wBAAwB;AAAA,IAC/C,MAAM,WAAW,kBACf,OAAO,YAAY,OAAO,KAAK,UAAU,YAAY,uBACvD;AAAA,IACA,MAAM,WAAW,OAAO,YAAY,WAAW;AAAA,IAC/C,MAAM,aACJ,SAAS,WAAW,IACf,UAAU,cAAc,CAAC,IAC1B,MAAM,QAAO,WAAW,gBAAgB,IAAI,KAAK,UAAU,QAAQ,CAAC,CAAC;AAAA,IAC3E,MAAM,UAAU,OAAO,YAAY,SAAS;AAAA,IAC5C,MAAM,QAAQ,OAAO,YAAY,OAAO,KAAK,UAAU;AAAA,IACvD,MAAM,eAAe,OAAO,YAAY,cAAc,KAAK,UAAU;AAAA,IACrE,MAAM,cAAc,iBAAiB,YAAY,YAAY,SAAQ,YAAY;AAAA,IACjF,MAAM,gBAAgB,OAAO,YAAY,WAAW;AAAA,IACpD,MAAM,YACJ,kBAAkB,YACd,UAAU,YACV,kBAAkB,SAChB,YACA,eAAe,aAAa;AAAA,IACpC,MAAM,iBAAgB,oBAAoB,KAAK;AAAA,MAC7C,SAAS;AAAA,MACT;AAAA,MACA,UAAU,UAAU,YAAY,aAAa;AAAA,MAC7C,YAAY,OAAO,YAAY,MAAM,KAAK,UAAU,cAAc;AAAA,MAClE;AAAA,SACG,oBAAoB,UAAU,QAAQ;AAAA,SACrC,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU;AAAA,SAC3C,UAAU,YAAY,CAAC,IAAI,EAAE,MAAM;AAAA,SACnC,gBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY;AAAA,UAC9C,WAAW,UAAU,aAAa,YACnC,CAAC,IACD;AAAA,QACE,SAAS,SAAO,kBACd,SAAO,SAAS,CAAC,aAAa,mBAAmB,oBAAoB,CAAC,CACxE,EAAE,WAAW,UAAU,OAAO;AAAA,MAChC;AAAA,IACN,CAAC;AAAA,IACD,MAAM,yBAAyB,cAAa;AAAA,IAC5C,MAAM,EAAE,YAAY,MAAM,aAAa,kBAAkB,EAAE,CAAC;AAAA,IAC5D;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,SAAS;AAAA,IACvB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,IAAI,WAAW,YAAY,WAAW,GAAG;AAAA,MACvC,WAAW;AAAA,MACX;AAAA,IACF;AAAA,IACA,IAAI,WAAW,YAAY,OAAO,aAAa,WAAW,YAAY,SAAS,GAAG;AAAA,MAChF,MAAM,IAAI,MAAM,4DAA4D;AAAA,IAC9E;AAAA,IACA,MAAM,EAAE,WAAW,MAAM,aAAa,WAAW,YAAY,MAAM,KAAK,EAAE,CAAC;AAAA,IAC3E;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,gBAAgB;AAAA,IAC9B,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,cAAc,YAAY,OAAO;AAAA,IACjC,MAAM;AAAA,MACJ,WAAW;AAAA,MACX,WAAW;AAAA,MACX,YACE;AAAA,MACF,cAAc;AAAA,QACZ,SAAS;AAAA,QACT,MAAM,CAAC,MAAM,mBAAmB,KAAK;AAAA,MACvC;AAAA,MACA,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,CAAC,OAAO,MAAM,mBAAmB,KAAK;AAAA,QAC/C,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAAA,IACD;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,UAAU;AAAA,IACxB,aAAa,YAAY,CAAC,KAAK,CAAC;AAAA,IAChC,cAAc,YAAY,OAAO;AAAA,IACjC,IAAI,WAAW,QAAQ,IAAI,KAAK,GAAG;AAAA,MACjC,QAAQ,kBAAU,MAAM,OAAO;AAAA,MAC/B,MAAM,gBAAgB,MAAM,QAAO,WAAW,OAAM,QAAQ,CAAC,GAAG,OAAO,CAAC;AAAA,MACxE;AAAA,IACF;AAAA,IACA,MAAM,iBAAgB,MAAM,wBAAwB;AAAA,IACpD,MAAM,WAAW,kBACf,QAAQ,IAAI,oBAAoB,gBAAe,YAAY,uBAC7D;AAAA,IACA,MAAM,oBAAoB,oBAAoB,gBAAe,QAAQ;AAAA,IACrE,MAAM,WAAW,MAAM,MAAM,GAAG,uBAAuB;AAAA,MACrD,QAAQ,YAAY,QAAQ,GAAM;AAAA,IACpC,CAAC,EAAE,MAAM,MAAG;AAAA,MAAG;AAAA,KAAS;AAAA,IACxB,MAAM,gBAAgB,QAAQ,IAAI;AAAA,IAClC,MAAM,oBACJ,kBAAkB,YACd,gBAAe,YACf,kBAAkB,SAChB,YACA,eAAe,aAAa;AAAA,IACpC,MAAM,sBAAsB,OAAO,YACjC,SAAS,SACN,OAAO,CAAC,aAAa,aAAa,UAAU,EAC5C,IAAI,CAAC,aAAa;AAAA,MACjB;AAAA,MACU,eAAe,aAAa,gBAAgB,WAAW,QAAQ,KAAK;AAAA,IAChF,CAAC,CACL;AAAA,IACA,MAAM,cAAc,QAAQ,IAAI,uBAAuB,gBAAe;AAAA,IACtE,MAAM,WACJ,gBAAgB,YACZ,YACA,MAAM,iBAAiB,WAAW,EAAE,MAAM,MAAG;AAAA,MAAG;AAAA,KAAS;AAAA,IAC/D,MAAM,cAAc,QAAQ,IAAI,uBAAuB,kBAAkB;AAAA,IACzE,MAAM,sBACJ,QAAQ,IAAI,wBAAwB,aAAa,kBAAkB,gBAAgB;AAAA,IACrF,MAAM,WAAW,QAAQ,IAAI,oBAAoB,gBAAe;AAAA,IAChE,MAAM,gBACJ,UAAU,OAAO,QAAQ,gBAAgB,aAAa,aAAa,YAC/D,YACA,MAAM,QAAO,WACX,YAAY,KAAK,EAAE,SAAS,UAAU,OAAO,YAAY,CAAC,EAAE,QAAQ,CACtE,EACG,KAAK,CAAC,YAAY,QAAQ,KAAK,CAAC,WAAW,OAAO,OAAO,QAAQ,CAAC,EAClE,MAAM,MAAG;AAAA,MAAG;AAAA,KAAS;AAAA,IAC9B,MAAM,iBAAiB,qBAAqB,SAAS,eAAe,OAAO;AAAA,IAC3E,MAAM,WAAW;AAAA,MACf,GAAI,UAAU,OAAO,OAAO,CAAC,IAAI,CAAC,sBAAsB;AAAA,MACxD,GAAI,mBAAmB,YAAY,CAAC,IAAI,CAAC,cAAc;AAAA,MACvD,GAAI,uBACJ,UAAU,OAAO,QACjB,eAAe,WAAW,YAC1B,eAAe,WAAW,SACtB;AAAA,QACE,gBAAgB,YACZ,gEACA;AAAA,MACN,IACA,CAAC;AAAA,MACL,GAAI,mBAAmB,QAAQ,CAAC,aAC9B,aAAa,aACT,aAAa,YACX;AAAA,QACE;AAAA,MACF,IACA,CAAC,IACH,oBAAoB,cAAc,cAChC,CAAC,uBAAuB,0CAA0C,IAClE,CAAC,CACT,KAAK,CAAC;AAAA,IACR;AAAA,IACA,MAAM;AAAA,MACJ;AAAA,MACA,OAAO,UAAU,OAAO,OAAO,cAAc;AAAA,MAC7C,WAAW;AAAA,MACX,aAAa,kBAAkB;AAAA,MAC/B,mBACE,QAAQ,IAAI,wBAAwB,aACpC,kBAAkB,gBAAgB;AAAA,MACpC,mBAAmB;AAAA,MACnB,YAAY,gBAAe,cAAc,CAAC;AAAA,MAC1C,WAAW;AAAA,SACP,gBAAgB,YAChB,CAAC,IACD;AAAA,QACE,cAAc;AAAA,UACZ,MAAM;AAAA,UACN,WAAW,aAAa;AAAA,UACxB,MAAM,UAAU,UAAU;AAAA,QAC5B;AAAA,MACF;AAAA,MACJ,oBAAoB,qBAAqB;AAAA,MACzC,yBAAyB;AAAA,MACzB,eACE,wBAAwB,QAAQ,mBAAoB,eAAe,UAAU;AAAA,MAC/E,gBAAgB,eAAe;AAAA,MAC/B;AAAA,IACF,CAAC;AAAA,IACD;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,YAAY;AAAA,IAC1B,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,cAAc,YAAY,OAAO;AAAA,IACjC,QAAQ,kBAAU,MAAM,OAAO;AAAA,IAC/B,MAAM,eAAe,MAAM,QAAO,WAAW,OAAM,QAAQ,CAAC,GAAG,OAAO,CAAC;AAAA,IACvE;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,SAAS;AAAA,IACvB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,cAAc,YAAY,OAAO;AAAA,IACjC,QAAQ,kBAAU,MAAM,OAAO;AAAA,IAC/B,MAAM;AAAA,SACA,MAAM,QAAO,WAAW,OAAM,MAAM,CAAC;AAAA,MACzC,OAAO;AAAA,IACT,CAAC;AAAA,IACD;AAAA,EACF;AAAA,EAEA,IACE,YAAY,UACZ,YAAY,cACZ,YAAY,YACZ,YAAY,UACZ;AAAA,IACA,QAAQ,+BAAe,kBAAU,MAAM,YAAY;AAAA,IACnD,IAAI,YAAY,QAAQ;AAAA,MACtB,aAAa,YAAY,CAAC,eAAe,OAAO,CAAC;AAAA,MACjD,cAAc,YAAY,OAAO;AAAA,MACjC,MAAM,QAAQ,WAAW,QAAQ,IAAI,aAAa,IAC7C,CAAC,QAAQ,IACT,CAAC,UAAU,QAAQ;AAAA,MACxB,MAAM,aAAa,MAAM,QAAO,WAC9B,OAAM,cAAc,EAAE,OAAO,OAAO,YAAY,OAAO,KAAK,iBAAiB,MAAM,CAAC,CACtF;AAAA,MACA,MAAM;AAAA,QACJ,WAAW,eAAc;AAAA,QACzB,eAAe,WAAW;AAAA,QAC1B,YAAY,WAAW;AAAA,QACvB;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA,IAAI,YAAY,YAAY;AAAA,MAC1B,aAAa,YAAY,CAAC,CAAC;AAAA,MAC3B,cAAc,YAAY,OAAO;AAAA,MACjC,MAAM,MAAM,QAAO,WAAW,OAAM,aAAa,CAAC,CAAC;AAAA,MACnD;AAAA,IACF;AAAA,IACA,IAAI,YAAY,UAAU;AAAA,MACxB,aAAa,YAAY,CAAC,CAAC;AAAA,MAC3B,MACE,MAAM,QAAO,WACX,OAAM,aACJ,SAAO,kBAAkB,QAAQ,EAAE,WAAW,YAAY,WAAW,CAAC,CACxE,CACF,CACF;AAAA,MACA;AAAA,IACF;AAAA,IACA,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,MACE,MAAM,QAAO,WACX,OAAM,kBACJ,SAAO,kBAAkB,aAAa,EAAE,WAAW,YAAY,YAAY,CAAC,CAC9E,CACF,CACF;AAAA,IACA;AAAA,EACF;AAAA,EAEA,QAAQ,eAAe,UAAU,MAAM,OAAO;AAAA,EAC9C,IAAI,YAAY,WAAW;AAAA,IACzB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,cAAc,YAAY,OAAO;AAAA,IACjC,MAAM,MAAM,QAAO,WAAW,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC9C;AAAA,EACF;AAAA,EACA,IAAI,YAAY,QAAQ;AAAA,IACtB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,cAAc,YAAY,OAAO;AAAA,IACjC,MAAM,SAAS,MAAM,QAAO,WAAW,MAAM,QAAQ,CAAC,CAAC,CAAC;AAAA,IACxD;AAAA,EACF;AAAA,EACA,IAAI,YAAY,cAAc,YAAY,QAAQ;AAAA,IAChD,aAAa,YAAY;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,MAAM,mBACJ,YAAY,UAAU,WAAW,YAAY,IAAI,WAAW,GAAG,IAC3D,WAAW,YAAY,KACvB;AAAA,IACN,MAAM,cACJ,qBAAqB,YAAY,WAAW,cAAc,WAAW,YAAY,MAAM,CAAC;AAAA,IAC1F,IAAI,qBAAqB,aAAa,OAAO,YAAY,QAAQ,MAAM,WAAW;AAAA,MAChF,MAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AAAA,IACA,IAAI,OAAO,YAAY,QAAQ,MAAM,OAAO,OAAO,YAAY,SAAS,MAAM,KAAK;AAAA,MACjF,MAAM,IAAI,MAAM,wDAAwD;AAAA,IAC1E;AAAA,IACA,MAAM,iBAAiB,MAAM,UAAU,YAAY,QAAQ;AAAA,IAC3D,MAAM,SAAS,kBAAkB,YAAY,KAAK,GAAG;AAAA,IACrD,IAAI,OAAO,KAAK,EAAE,WAAW,GAAG;AAAA,MAC9B,MAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AAAA,IACA,IAAI,mBAAmB,aAAa,YAAY,SAAS,GAAG;AAAA,MAC1D,MAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AAAA,IACA,MAAM,UAAU,MAAM,UAAU,YAAY,SAAS;AAAA,IACrD,MAAM,SAAS,oBAAoB,OAAO,YAAY,QAAQ;AAAA,IAC9D,MAAM,SAAS,OAAO,YAAY,QAAQ;AAAA,IAC1C,MAAM,YAAY,OAAO,YAAY,WAAW;AAAA,IAChD,MAAM,WAAW,OAAO,YAAY,UAAU;AAAA,IAC9C,MAAM,SAAS,OAAO,YAAY,QAAQ;AAAA,IAC1C,MAAM,OAAO,MAAM,QAAO,WACxB,iBAAiB,OAAO,eAAe;AAAA,MACrC;AAAA,SACI,WAAW,YAAY,CAAC,IAAI,EAAE,OAAO;AAAA,SACrC,YAAY,YAAY,CAAC,IAAI,EAAE,QAAQ;AAAA,SACvC,WAAW,YAAY,CAAC,IAAI,EAAE,UAAU,SAAO,kBAAkB,QAAQ,EAAE,MAAM,EAAE;AAAA,SACnF,WAAW,YAAY,CAAC,IAAI,EAAE,cAAc,SAAO,kBAAkB,MAAM,EAAE,MAAM,EAAE;AAAA,SACrF,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU;AAAA,SAC3C,aAAa,YACb,CAAC,IACD,EAAE,UAAU,SAAO,kBAAkB,QAAQ,EAAE,QAAQ,EAAE;AAAA,IAC/D,CAAC,CACH;AAAA,IACA,MACE,WACE,WAAW,QAAQ,IAAI,SAAS,IAC5B,OACA,MAAM,QAAO,WAAW,YAAY,OAAO,MAAM,QAAQ,UAAU,CAAC,CAAC,CAC3E,CACF;AAAA,IACA;AAAA,EACF;AAAA,EACA,IAAI,YAAY,UAAU;AAAA,IACxB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,MAAM,KAAK,SAAO,kBAAkB,MAAM,EAAE,WAAW,YAAY,SAAS,CAAC;AAAA,IAC7E,MAAM,WAAW,MAAM,QAAO,WAAW,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC;AAAA,IAC5D;AAAA,EACF;AAAA,EACA,IAAI,YAAY,SAAS;AAAA,IACvB,aAAa,YAAY,CAAC,QAAQ,CAAC;AAAA,IACnC,MAAM,KAAK,SAAO,kBAAkB,MAAM,EAAE,WAAW,YAAY,SAAS,CAAC;AAAA,IAC7E,IAAI,WAAW,QAAQ,IAAI,QAAQ,GAAG;AAAA,MACpC,MAAM,QAAO,WAAW,gBAAgB,OAAO,IAAI,SAAS,CAAC;AAAA,MAC7D;AAAA,IACF;AAAA,IACA,MAAM,MAAM,QAAO,WAAW,MAAM,UAAU,EAAE,CAAC,CAAC;AAAA,IAClD;AAAA,EACF;AAAA,EACA,IAAI,YAAY,QAAQ;AAAA,IACtB,aAAa,YAAY,CAAC,SAAS,CAAC;AAAA,IACpC,MAAM,KAAK,SAAO,kBAAkB,MAAM,EAAE,WAAW,YAAY,SAAS,CAAC;AAAA,IAC7E,MAAM,OAAO,MAAM,QAAO,WAAW,MAAM,QAAQ,EAAE,CAAC;AAAA,IACtD,MAAM,WAAW,MAAM,QAAO,WAAW,YAAY,OAAO,MAAM,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC;AAAA,IACxF;AAAA,EACF;AAAA,EACA,IAAI,YAAY,UAAU;AAAA,IACxB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,MAAM,KAAK,SAAO,kBAAkB,MAAM,EAAE,WAAW,YAAY,SAAS,CAAC;AAAA,IAC7E,MAAM,WAAW,MAAM,QAAO,WAAW,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC;AAAA,IAC/D;AAAA,EACF;AAAA,EACA,IAAI,YAAY,UAAU;AAAA,IACxB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3B,MAAM,KAAK,SAAO,kBAAkB,QAAQ,EAAE,WAAW,YAAY,WAAW,CAAC;AAAA,IACjF,MAAM,MAAM,QAAO,WAAW,cAAc,OAAO,EAAE,CAAC,CAAC;AAAA,IACvD;AAAA,EACF;AAAA,EACA,MAAM,IAAI,MAAM,2BAA2B,SAAS;AAAA;;;AW1+BtD;AAgBA,mBAAS,sBAAQ,qBAAU;AAC3B,sBAAS;AACT,iBAAS,mBAAM,mBAAU;AACzB,2BAAe,uBAAU;AACzB,qBAAS,yBAAU,yBAAY;AAC/B,sBAAS;AAMT,IAAM,yBAAyB;AAAA;AAExB,MAAM,8BAA8B,SAAO,iBAAwC,EACxF,0BACA,EAAE,SAAS,SAAO,OAAO,CAC3B,EAAE;AAAC;AAgBH,IAAM,YAAY,CAAC,kBAA+C;AAAA,EAChE,MAAM,MAAM,IAAI,IAAI,cAAc,QAAQ;AAAA,EAC1C,IAAI,WAAW,IAAI,aAAa,WAAW,SAAS;AAAA,EACpD,IAAI,WAAW;AAAA,EACf,OAAO,IAAI,SAAS;AAAA;AAGtB,IAAM,gBAAgB,CAAC,aAA+B;AAAA,EACpD,QAAQ;AAAA,SACD;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA;AAAA;AAIb,IAAM,eAAe,CAAC,cAA+D;AAAA,EACnF,MAAM,UAAgD,UAAU,IAAI,CAAC,cAAc;AAAA,IACjF,IAAI;AAAA,IACJ,OAAO,cAAc,QAAQ;AAAA,IAC7B,QACE,aAAa,aACT,8DACA,GAAG,cAAc,QAAQ;AAAA,EACjC,EAAE;AAAA,EACF,IACY,eAAe,eAAe,MAAM,aACpC,eAAe,UAAU,MAAM,aACzC,UAAS,MAAM,UACf;AAAA,IACA,QAAO,KAAK,EAAE,IAAI,mBAAmB,OAAO,oBAAoB,CAAC;AAAA,EACnE;AAAA,EACA,IAAc,eAAe,YAAY,MAAM,WAAW;AAAA,IACxD,QAAO,KAAK,EAAE,IAAI,SAAS,OAAO,QAAQ,CAAC;AAAA,EAC7C;AAAA,EACA,IAAc,eAAe,QAAQ,MAAM,WAAW;AAAA,IACpD,QAAO,KAAK,EAAE,IAAI,UAAU,OAAO,SAAS,CAAC;AAAA,EAC/C;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,kBAAkB,CAC7B,WACA,eAEA,eAAe,YACX,YACA,WAAW,OAAO,CAAC,aAAa,UAAU,SAAS,QAAQ,CAAC;AAElE,IAAM,iBAAiB,CACrB,eACA,SAA4B,UAC5B,OAA2B,CAAC,MACjB;AAAA,EACX,MAAM,mBAAkB,UAAS;AAAA,EACjC,MAAM,eACJ,qBAAoB,YAAY,qBAAoB,UAChD,mBACA,qBAAoB,UAClB,YACA;AAAA,EACR,MAAM,YAAqC;AAAA,IACzC,GAAa,mBAAmB;AAAA,IAChC,GAAI,cAAc,gBAAgB,YAAY,CAAC,IAAI,CAAC,UAAmB;AAAA,EACzE;AAAA,EACA,MAAM,YAAY,gBAAgB,WAAW,cAAc,SAAS;AAAA,EACpE,OAAO,OAAO,KAAK;AAAA,IACjB,IAAI,cAAc;AAAA,IAClB,MAAM,cAAc;AAAA,IACpB,UAAU,UAAS;AAAA,IACnB,UAAU;AAAA,IACV,cAAc,KAAK;AAAA,IACnB;AAAA,IACA;AAAA,OACI,UAAU,SAAS,UAAU,IAAI,EAAE,KAAK,IAAI,CAAC;AAAA,IACjD,cAAc,aAAa,SAAS;AAAA,IACpC,YAAY,cAAc,WAAW,IAAI,CAAC,UAAU;AAAA,MAClD;AAAA,MACA,OAAO,UAAS,IAAI,KAAK;AAAA,IAC3B,EAAE;AAAA,IACF;AAAA,IACA,YAAY,IAAI;AAAA,EAClB,CAAC;AAAA;AAGI,IAAM,mBAAmB,OAC9B,eACA,cACoB;AAAA,EACpB,MAAM,WAAW,aAAa,cAAc,WAAW;AAAA,EACvD,IAAI,aAAa,WAAW;AAAA,IAC1B,MAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AAAA,EACA,MAAM,YAAY,MAAM,UAAS,QAAQ;AAAA,EACzC,MAAM,UAAU,cAAc,WAAW,KAAK,CAAC,SAAS;AAAA,IACtD,MAAM,QAAQ,UAAS,MAAM,SAAS;AAAA,IACtC,OAAO,UAAU,MAAO,CAAC,MAAM,WAAW,IAAI,KAAK,CAAC,YAAW,KAAK;AAAA,GACrE;AAAA,EACD,IAAI,CAAC,SAAS;AAAA,IACZ,MAAM,IAAI,MAAM,aAAa,+DAA+D;AAAA,EAC9F;AAAA,EACA,OAAO;AAAA;AASF,IAAM,uBAAuB,OAClC,eACA,cACiC;AAAA,EACjC,MAAM,OAAO,MAAM,iBAAiB,eAAe,SAAS;AAAA,EAC5D,MAAM,mBAAkB,UAAS;AAAA,EACjC,MAAM,QACJ,WAAU,YACT,qBAAoB,UAAU,IAAI,WAAU,cAAc,WAAU;AAAA,EACvE,MAAM,SAAS,MAAM,MAAK,MAAM,KAAK;AAAA,EACrC,MAAM,WAAW,MAAM,OAAO,KAAK;AAAA,EACnC,IAAI,CAAC,SAAS,YAAY,GAAG;AAAA,IAC3B,MAAM,OAAO,MAAM;AAAA,IACnB,MAAM,IAAI,MAAM,aAAa,yBAAyB;AAAA,EACxD;AAAA,EAGA,MAAM,MAAM,qBAAoB,UAAU,iBAAiB,OAAO,OAAO;AAAA,EACzE,OAAO;AAAA,IACL;AAAA,IACA,UAAU,YAAY;AAAA,MACpB,MAAM,UAAU,MAAM,OAAO,KAAK;AAAA,MAClC,IAAI,CAAC,QAAQ,YAAY,KAAK,QAAQ,QAAQ,SAAS,OAAO,QAAQ,QAAQ,SAAS,KAAK;AAAA,QAC1F,MAAM,IAAI,MAAM,aAAa,sCAAsC;AAAA,MACrE;AAAA,MACA,IAAI,qBAAoB,SAAS;AAAA,QAC/B,MAAM,cAAc,MAAM,UAAS,IAAI;AAAA,QACvC,MAAM,sBAAsB,MAAM,MAAK,WAAW;AAAA,QAClD,IAAI,oBAAoB,QAAQ,SAAS,OAAO,oBAAoB,QAAQ,SAAS,KAAK;AAAA,UACxF,MAAM,IAAI,MAAM,aAAa,sCAAsC;AAAA,QACrE;AAAA,MACF;AAAA;AAAA,IAEF,OAAO,MAAM,OAAO,MAAM;AAAA,EAC5B;AAAA;AAGF,IAAM,YAAY,CAAC,MAAY,eAA+B;AAAA,EAC5D,MAAM,UACJ,KAAK,YAAY,YACb,KACA;AAAA;AAAA;AAAA,EAAwD,KAAK;AAAA,EACnE,OAAO;AAAA,IACL,uCAAuC;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAAY,KAAK,SAAS;AAAA,EAC5B,EAAE,KAAK;AAAA,CAAI;AAAA;AAGb,IAAM,OAAO,CAAC,OAAc,UAA6B;AAAA,EACvD,IAAI,MAAM,QAAQ,eAAe,WAAU,MAAM;AAAA,IAC/C,MAAM,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACzC;AAAA;AAGF,IAAM,eAAe,CAAC,OAAc,QAAgB,UAA6B;AAAA,EAC/E,MAAM,UAAU,KAAK,UAAU,KAAK;AAAA,EACpC,MAAM,SAAS,IAAI,QAAQ,OAAO;AAAA,EAClC,IAAI,MAAM,QAAQ,eAAe,WAAU,MAAM;AAAA,IAC/C,MAAM,OAAO,KAAK,OAAO;AAAA,EAC3B;AAAA;AAGF,IAAM,wBAAwB,CAC5B,OACA,aACA,UACS;AAAA,EACT,MAAM,UAAU,KAAK,UAAU,KAAK;AAAA,EACpC,MAAM,kBAAkB,IAAI,aAAa,OAAO;AAAA,EAChD,IAAI,MAAM,QAAQ,eAAe,WAAU,MAAM;AAAA,IAC/C,MAAM,OAAO,KAAK,OAAO;AAAA,EAC3B;AAAA;AAGF,IAAM,WAAW,CAAC,OAAc,WAAyB;AAAA,EACvD,MAAM,UAAU,IAAI,MAAM;AAAA,EAC1B,IAAI,MAAM,UAAU,QAAQ,MAAO;AAAA,IACjC;AAAA,EACF;AAAA,EACA,MAAM,SAAS,MAAM,UAAU,OAAO,EAAE,KAAK;AAAA,EAC7C,IAAI,CAAC,OAAO,MAAM;AAAA,IAChB,MAAM,UAAU,OAAO,OAAO,KAAK;AAAA,IACnC,MAAM,SAAS,OAAO,OAAO,KAAK;AAAA,EACpC;AAAA;AAGF,IAAM,oBAAoB,CAAC,OAAc,gBAAmC;AAAA,EAC1E,MAAM,oBAAoB,IAAI,WAAW;AAAA,EACzC,IAAI,MAAM,oBAAoB,QAAQ,KAAK;AAAA,IACzC;AAAA,EACF;AAAA,EACA,MAAM,SAAS,MAAM,oBAAoB,OAAO,EAAE,KAAK;AAAA,EACvD,IAAI,CAAC,OAAO,MAAM;AAAA,IAChB,MAAM,oBAAoB,OAAO,OAAO,KAAK;AAAA,IAC7C,MAAM,kBAAkB,OAAO,OAAO,KAAK;AAAA,EAC7C;AAAA;AAGF,IAAM,aAAa,CAAC,SAAuB,GAAG,KAAK,YAAY,KAAK;AAEpE,IAAM,QAAQ,CAAC,eAAoC,UAAuB;AAAA,EACxE,IAAI,MAAM,cAAc,WAAW;AAAA,IACjC;AAAA,EACF;AAAA,EACA,IAAI,MAAM,MAAM,SAAS,GAAG;AAAA,IAC1B,MAAM,YAAY,MAAM,eAAe,MAAM;AAAA,IAC7C,IAAI,cAAc,WAAW;AAAA,MAC3B,iBAAiB,eAAe,OAAO,SAAS;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM,WAAW,IAAI,IAAI,CAAC,GAAG,MAAM,MAAM,OAAO,CAAC,EAAE,IAAI,GAAG,WAAW,SAAS,IAAI,CAAC,CAAC;AAAA,EACpF,SAAS,QAAQ,EAAG,QAAQ,MAAM,MAAM,UAAU;AAAA,IAChD,MAAM,OAAO,MAAM,MAAM;AAAA,IACzB,IAAI,SAAS,aAAa,SAAS,IAAI,SAAS,IAAI,CAAC,GAAG;AAAA,MACtD,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACA,MAAM,MAAM,OAAO,OAAO,CAAC;AAAA,IAC3B,SAAS,IAAI,SAAS,IAAI,CAAC;AAAA,IAC3B,QAAQ,eAAe,OAAO,IAAI;AAAA,EACpC;AAAA;AAGF,IAAM,UAAU,CAAC,eAAoC,OAAc,SAAqB;AAAA,EACtF,IAAI,MAAM,MAAM,IAAI,KAAK,EAAE,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,GAAG;AAAA,IAC5D;AAAA,EACF;AAAA,EACA,MAAM,aAAa,IAAI;AAAA,EACvB,MAAM,MAAM,IAAI,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAAA,EAC7C,KAAK,OAAO,YAAY,KAAK,EAAE,MAAM,gBAAgB,QAAQ,KAAK,GAAG,CAAC,CAAC;AAAA,EAEvE,MAAM,WAAwE,SAAO,IACnF,UAAU,GAAG;AAAA,IACX,IAAI,KAAK,aAAa,YAAY;AAAA,MAChC,OAAO,OAAO,SAAO,WAAW;AAAA,QAC9B,KAAK,CAAC,WAAW,WAAW,cAAc,aAAa,MAAM,MAAM;AAAA,QACnE,OAAO,CAAC,UACN,IAAc,iBAAiB;AAAA,UAC7B,UAAU,KAAK;AAAA,UACf,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QAChE,CAAC;AAAA,MACL,CAAC;AAAA,IACH;AAAA,IACA,MAAM,YAAY,OAAO,SAAO,WAAW;AAAA,MACzC,KAAK,MAAM,qBAAqB,eAAe,KAAK,SAAS;AAAA,MAC7D,OAAO,CAAC,UACN,IAAc,iBAAiB;AAAA,QAC7B,UAAU,KAAK;AAAA,QACf,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MAChE,CAAC;AAAA,IACL,CAAC;AAAA,IACD,MAAM,YAAY,KAAK,qBAAqB,MAAM,SAAS,IAAI,WAAW,IAAI,CAAC;AAAA,IAC/E,OAAO,OAAiB,IAAI;AAAA,MAC1B,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,QAAQ,KAAK;AAAA,MACb,QAAQ,UAAU,MAAM,cAAc,IAAI;AAAA,MAC1C,KAAK,UAAU;AAAA,MACf,aAAa,UAAU;AAAA,SACnB,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU;AAAA,SAC3C,cAAc,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO,cAAc,MAAM;AAAA,SACtE,cAAc,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,cAAc,QAAQ;AAAA,IAClF,CAAC,EAAE,KAAK,SAAO,SAAS,SAAO,QAAQ,MAAM,UAAU,MAAM,EAAE,MAAM,MAAG;AAAA,MAAG;AAAA,KAAS,CAAC,CAAC,CAAC;AAAA,GAE3F;AAAA,EAEK,SAAO,WAAW,UAAU,EAAE,QAAQ,WAAW,OAAO,CAAC,EAC3D,KAAK,CAAC,WAAW;AAAA,IAChB,IAAI,OAAO,cAAc,WAAW;AAAA,MAClC,MAAM,SAAS,IAAI,WAAW,IAAI,GAAG,OAAO,SAAS;AAAA,IACvD;AAAA,IACA,SAAS,OAAO,KAAK,EAAE;AAAA,IACvB,aACE,OACA,KAAK,IACL,YAAY,KAAK;AAAA,MACf,MAAM;AAAA,MACN,QAAQ,KAAK;AAAA,MACb,QAAQ,OAAO;AAAA,SACX,OAAO,cAAc,YAAY,CAAC,IAAI,EAAE,mBAAmB,OAAO,UAAU;AAAA,IAClF,CAAC,CACH;AAAA,GACD,EACA,MAAM,CAAC,UAAmB;AAAA,IACzB,SAAS,OAAO,KAAK,EAAE;AAAA,IACvB,aACE,OACA,KAAK,IACL,WAAW,OAAO,UACd,YAAY,KAAK,EAAE,MAAM,iBAAiB,QAAQ,KAAK,GAAG,CAAC,IAC3D,YAAY,KAAK;AAAA,MACf,MAAM;AAAA,MACN,QAAQ,KAAK;AAAA,MACb,QAAQ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,MAAM,GAAG,KAAM;AAAA,IACjF,CAAC,CACP;AAAA,GACD,EACA,QAAQ,MAAM;AAAA,IACb,MAAM,MAAM,OAAO,KAAK,EAAE;AAAA,IAC1B,MAAM,eAAe,KAAK;AAAA,GAC3B;AAAA;AAGL,IAAM,mBAAmB,CACvB,eACA,OACA,cACS;AAAA,EACT,IAAI,MAAM,cAAc,aAAa,MAAM,oBAAoB,IAAI,UAAU,EAAE,GAAG;AAAA,IAChF;AAAA,EACF;AAAA,EACA,MAAM,YAAY;AAAA,EAClB,KAAK,OAAO,YAAY,KAAK,EAAE,MAAM,qBAAqB,aAAa,UAAU,GAAG,CAAC,CAAC;AAAA,EACjF,uBAAuB,WAAW,OAAO,EAC3C,KAAK,CAAC,WAAW;AAAA,IAChB,kBAAkB,OAAO,UAAU,EAAE;AAAA,IACrC,sBACE,OACA,UAAU,IACV,YAAY,KAAK;AAAA,MACf,MAAM;AAAA,MACN,aAAa,UAAU;AAAA,MACvB;AAAA,IACF,CAAC,CACH;AAAA,GACD,EACA,MAAM,CAAC,UAAmB;AAAA,IACzB,kBAAkB,OAAO,UAAU,EAAE;AAAA,IACrC,sBACE,OACA,UAAU,IACV,YAAY,KAAK;AAAA,MACf,MAAM;AAAA,MACN,aAAa,UAAU;AAAA,MACvB,QAAQ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,MAAM,GAAG,KAAM;AAAA,IACjF,CAAC,CACH;AAAA,GACD,EACA,QAAQ,MAAM;AAAA,IACb,MAAM,YAAY;AAAA,IAClB,MAAM,eAAe,KAAK;AAAA,GAC3B;AAAA;AAGL,IAAM,oBAAoB,CACxB,eACA,OACA,cACS;AAAA,EACT,IACE,MAAM,oBAAoB,IAAI,UAAU,EAAE,KAC1C,MAAM,WAAW,OAAO,UAAU,MAClC,MAAM,eAAe,KAAK,CAAC,YAAY,QAAQ,OAAO,UAAU,EAAE,GAClE;AAAA,IACA;AAAA,EACF;AAAA,EACA,IAAI,MAAM,MAAM,OAAO,KAAK,MAAM,cAAc,WAAW;AAAA,IACzD,IAAI,MAAM,eAAe,UAAU,IAAI;AAAA,MACrC,MAAM,QAAQ,MAAM,MAAM,+BAA+B;AAAA,MACzD;AAAA,IACF;AAAA,IACA,MAAM,eAAe,KAAK,SAAS;AAAA,IACnC;AAAA,EACF;AAAA,EACA,iBAAiB,eAAe,OAAO,SAAS;AAAA;AAG3C,IAAM,yBAAyB,CACpC,WACA,gBACA,aAAkE,YAElE,WAAW;AAAA,EACT;AAAA,EACA,QAAQ,UAAU;AAAA,EAClB,SAAS,UAAU;AAAA,EACnB,QAAQ;AAAA,EACR,WAAW;AACb,CAAC,EAAE,KAAK,CAAC,WAAW,KAAK,UAAU,MAAM,CAAC;AAE5C,IAAM,WAAW,CAAC,eAAoC,OAAc,SAAqB;AAAA,EACvF,IACE,MAAM,MAAM,IAAI,KAAK,EAAE,KACvB,MAAM,UAAU,IAAI,KAAK,EAAE,KAC3B,MAAM,MAAM,KAAK,CAAC,WAAW,OAAO,OAAO,KAAK,EAAE,GAClD;AAAA,IACA;AAAA,EACF;AAAA,EACA,IAAI,KAAK,sBAAsB,WAAW;AAAA,IACxC,MAAM,SAAS,IAAI,WAAW,IAAI,GAAG,KAAK,iBAAiB;AAAA,EAC7D;AAAA,EACA,IACE,CAAC,GAAG,MAAM,MAAM,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,aAAa,SAAS,MAAM,MAAM,SAAS,IAAI,CAAC,KACxF,MAAM,cAAc,WACpB;AAAA,IACA,IAAI,MAAM,MAAM,UAAU,KAAK;AAAA,MAC7B,MAAM,QAAQ,MAAM,MAAM,0BAA0B;AAAA,MACpD;AAAA,IACF;AAAA,IACA,MAAM,MAAM,KAAK,IAAI;AAAA,IACrB;AAAA,EACF;AAAA,EACA,QAAQ,eAAe,OAAO,IAAI;AAAA;AAGpC,IAAM,SAAS,CAAC,OAAc,WAAyB;AAAA,EACrD,MAAM,UAAU,MAAM,MAAM,IAAI,MAAM;AAAA,EACtC,IAAI,YAAY,WAAW;AAAA,IACzB,IAAI,QAAQ,KAAK,aAAa,YAAY;AAAA,MACxC,QAAQ,WAAW,MAAM;AAAA,IAC3B;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,MAAM,MAAM,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM;AAAA,EAChE,IAAI,UAAU,IAAI;AAAA,IAChB,MAAM,MAAM,OAAO,OAAO,CAAC;AAAA,EAC7B;AAAA,EACA,SAAS,OAAO,MAAM;AAAA,EACtB,aAAa,OAAO,QAAQ,YAAY,KAAK,EAAE,MAAM,iBAAiB,OAAO,CAAC,CAAC;AAAA;AAGjF,IAAM,UAAU,CACd,eACA,UAEA,SAAO,WAAW;AAAA,EAChB,KAAK,CAAC,WACJ,IAAI,QAAc,CAAC,aAAa;AAAA,IAC9B,MAAM,SAAS,IAAI,WAAU,UAAU,aAAa,GAAG;AAAA,MACrD,YAAY;AAAA,MACZ,mBAAmB;AAAA,MACnB,wBAAwB;AAAA,IAC1B,CAAC;AAAA,IACD,IAAI,OAA2B,CAAC;AAAA,IAChC,IAAI,aAAa;AAAA,IACjB,MAAM,cAAc,YAA2B;AAAA,MAC7C,IACE,cACA,cAAc,gBAAgB,aAC7B,cAAc,cAAc,aAAa,CAAC,cAAc,UAAU,SAAS,UAAU,GACtF;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAa;AAAA,MACb,OAAO,MAAM,iBAAiB,cAAc,WAAW,EAAE,MAAM,MAAM,CAAC,CAAC;AAAA,MACvE,aAAa;AAAA,MACb,IAAI,CAAC,QAAQ;AAAA,QACX,KACE,OACA,YAAY,KAAK;AAAA,UACf,MAAM;AAAA,UACN,UAAU,cAAc;AAAA,UACxB,QAAQ,MAAM,MAAM,OAAO,KAAK,MAAM,cAAc,YAAY,SAAS;AAAA,UACzE;AAAA,QACF,CAAC,CACH;AAAA,MACF;AAAA;AAAA,IAEF,MAAM,YAAY,YAAY,MAAM;AAAA,MAClC,KACE,OACA,YAAY,KAAK;AAAA,QACf,MAAM;AAAA,QACN,UAAU,cAAc;AAAA,QACxB,QAAQ,MAAM,MAAM,OAAO,KAAK,MAAM,cAAc,YAAY,SAAS;AAAA,WACrE,cAAc,gBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK;AAAA,MAC5D,CAAC,CACH;AAAA,MACK,YAAY;AAAA,OAChB,KAAM;AAAA,IACT,IAAI,SAAS;AAAA,IACb,IAAI,iBAAiB;AAAA,IACrB,MAAM,QAAQ,MAAY;AAAA,MACxB,IAAI,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,SAAS;AAAA,MACT,cAAc,SAAS;AAAA,MACvB,IAAI,MAAM,WAAW,QAAQ;AAAA,QAC3B,MAAM,SAAS;AAAA,MACjB;AAAA,MACA,SAAS;AAAA;AAAA,IAEX,OAAO,iBACL,SACA,MAAM;AAAA,MACJ,OAAO,MAAM;AAAA,MACb,MAAM;AAAA,OAER,EAAE,MAAM,KAAK,CACf;AAAA,IACA,OAAO,KAAK,QAAQ,MAAM;AAAA,MACxB,OAAO,KACL,KAAK,UAAU,YAAY,KAAK,EAAE,MAAM,gBAAgB,OAAO,cAAc,MAAM,CAAC,CAAC,CACvF;AAAA,KACD;AAAA,IACD,OAAO,GAAG,WAAW,CAAC,YAAqB;AAAA,MACzC,IAAI,kBAAkB,wBAAwB;AAAA,QAC5C,OAAO,MAAM,MAAM,6BAA6B;AAAA,QAChD;AAAA,MACF;AAAA,MACA,kBAAkB;AAAA,MAClB,MAAM,aAAa,MAAM,WACtB,KAAK,YAAY;AAAA,QAChB,IAAI,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,MAAM,QAAO,OAAO,SAAS,OAAO,IAChC,QAAQ,SAAS,MAAM,IACvB,mBAAmB,cACjB,OAAO,KAAK,OAAO,EAAE,SAAS,MAAM,IACpC,MAAM,QAAQ,OAAO,IACnB,OAAO,OAAO,OAAO,EAAE,SAAS,MAAM,IACtC,OAAO,KAAK,OAAO,EAAE,SAAS,MAAM;AAAA,QAC5C,MAAM,QAAQ,MAAM,SAAO,WACzB,SAAO,IAAI;AAAA,UACT,KAAK,MAAM,KAAK,MAAM,KAAI;AAAA,UAC1B,OAAO,MAAM,IAAI,sBAAsB,EAAE,SAAS,0BAA0B,CAAC;AAAA,QAC/E,CAAC,EAAE,KAAK,SAAO,QAAQ,iBAAiB,CAAC,CAC3C;AAAA,QACA,IAAI,MAAM,SAAS,aAAa;AAAA,UAC9B,MAAM,SAAS;AAAA,UACf,OAAO,KACL,KAAK,UACH,YAAY,KAAK;AAAA,YACf,MAAM;AAAA,YACN,QAAQ,eACN,eACA,MAAM,MAAM,OAAO,KAAK,MAAM,cAAc,YAAY,SAAS,UACjE,IACF;AAAA,UACF,CAAC,CACH,CACF;AAAA,UACA,WAAW,WAAW,MAAM,SAAS,OAAO,GAAG;AAAA,YAC7C,OAAO,KAAK,OAAO;AAAA,UACrB;AAAA,UACA,WAAW,WAAW,MAAM,kBAAkB,OAAO,GAAG;AAAA,YACtD,OAAO,KAAK,OAAO;AAAA,UACrB;AAAA,UACK,YAAY;AAAA,UACjB;AAAA,QACF;AAAA,QACA,IAAI,MAAM,SAAS,gBAAgB;AAAA,UACjC,SAAS,eAAe,OAAO,MAAM,IAAI;AAAA,UACzC;AAAA,QACF;AAAA,QACA,IAAI,MAAM,SAAS,cAAc;AAAA,UAC/B,OAAO,OAAO,MAAM,MAAM;AAAA,UAC1B;AAAA,QACF;AAAA,QACA,IAAI,MAAM,SAAS,eAAe;AAAA,UAChC,MAAM,SAAS,OAAO,MAAM,MAAM;AAAA,UAC7B,gBAAgB,MAAM,MAAM,EAAE,MAAM,MAAM;AAAA,YAC7C,QAAQ,MAAM,qDAAqD,MAAM,QAAQ;AAAA,WAClF;AAAA,UACD;AAAA,QACF;AAAA,QACA,IAAI,MAAM,SAAS,qBAAqB;AAAA,UACtC,kBAAkB,eAAe,OAAO,MAAM,SAAS;AAAA,UACvD;AAAA,QACF;AAAA,QACA,IAAI,MAAM,SAAS,oBAAoB;AAAA,UACrC,MAAM,kBAAkB,OAAO,MAAM,WAAW;AAAA,UAChD;AAAA,QACF;AAAA,QACA,IAAI,MAAM,SAAS,SAAS;AAAA,UAC1B,QAAQ,MAAM,gBAAgB,MAAM,SAAS;AAAA,QAC/C;AAAA,OACD,EACA,MAAM,CAAC,UAAmB;AAAA,QACzB,QAAQ,MACN,wBAAwB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAC/E;AAAA,OACD,EACA,QAAQ,MAAM;AAAA,QACb,iBAAiB,KAAK,IAAI,GAAG,iBAAiB,CAAC;AAAA,OAChD;AAAA,KACJ;AAAA,IACD,OAAO,KAAK,SAAS,KAAK;AAAA,IAC1B,OAAO,KAAK,SAAS,MAAM,OAAO,MAAM,CAAC;AAAA,GAC1C;AAAA,EACH,OAAO,CAAC,UACN,IAAI,sBAAsB;AAAA,IACxB,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,EAChE,CAAC;AACL,CAAC;AAEI,IAAM,YAAY,CACvB,kBAC+C;AAAA,EAC/C,MAAM,QAAe;AAAA,IACnB,QAAQ;AAAA,IACR,YAAY,QAAQ,QAAQ;AAAA,IAC5B,UAAU,IAAI;AAAA,IACd,OAAO,CAAC;AAAA,IACR,UAAU,IAAI;AAAA,IACd,OAAO,IAAI;AAAA,IACX,WAAW,IAAI;AAAA,IACf,WAAW;AAAA,IACX,gBAAgB,CAAC;AAAA,IACjB,mBAAmB,IAAI;AAAA,IACvB,qBAAqB,IAAI;AAAA,EAC3B;AAAA,EACA,OAAO,QAAQ,eAAe,KAAK,EAAE,KACnC,SAAO,OAAO,EAAE,UAAU,UAAS,OAAO,WAAW,EAAE,CAAC,GACxD,SAAO,SACL,SAAO,KAAK,MAAM;AAAA,IAChB,MAAM,QAAQ,MAAM;AAAA,IACpB,aAAa,gBAAgB,MAAM,MAAM,OAAO,GAAG;AAAA,MACjD,WAAW,MAAM;AAAA,IACnB;AAAA,GACD,CACH,CACF;AAAA;;;ACvqBF;AACA;AACA;AACA,mBAAS;AACT;AAIA,IAAM,SAAS,CAAC,WAAoB;AAAA,EAClC,SAAS,CAAC,EAAE,MAAM,QAAiB,MAAM,KAAK,UAAU,OAAO,MAAM,CAAC,EAAE,CAAC;AAC3E;AAEO,IAAM,SAAS,OAAO,kBAAsD;AAAA,EACjF,MAAM,UAAS,YAAY,KAAK;AAAA,IAC9B,SAAS,cAAc;AAAA,IACvB,OAAO,cAAc;AAAA,EACvB,CAAC;AAAA,EACD,MAAM,SAAS,IAAI,UAAU,EAAE,MAAM,UAAU,QAAQ,CAAC;AAAA,EAExD,OAAO,aACL,gBACA;AAAA,IACE,OAAO;AAAA,IACP,aACE;AAAA,IACF,aAAa,CAAC;AAAA,EAChB,GACA,YAAY,OAAO,MAAM,SAAO,WAAW,QAAO,QAAQ,CAAC,CAAC,CAC9D;AAAA,EAEA,OAAO,aACL,aACA;AAAA,IACE,OAAO;AAAA,IACP,aACE;AAAA,IACF,aAAa,CAAC;AAAA,EAChB,GACA,YAAY,OAAO,SAAS,MAAM,SAAO,WAAW,QAAO,QAAQ,CAAC,CAAC,CAAC,CACxE;AAAA,EAEA,OAAO,aACL,YACA;AAAA,IACE,OAAO;AAAA,IACP,aACE;AAAA,IACF,aAAa;AAAA,MACX,QAAU,SAAO,EAAE,IAAI,CAAC,EAAE,IAAI,MAAO;AAAA,MACrC,QACG,SAAO,EACP,SAAS,EACT,SACC,mGACF;AAAA,MACF,UACG,OAAK,SAAS,QAAQ,EACtB,SAAS,EACT,SAAS,qEAAqE;AAAA,MACjF,SACG,SAAO,EACP,IAAI,MAAO,EACX,SAAS,EACT,SACC,gQACF;AAAA,MACF,WAAa,SAAO,EAAE,KAAK,EAAE,SAAS;AAAA,MACtC,gBACG,SAAO,EACP,KAAK,EACL,SAAS,EACT,SAAS,4EAA4E;AAAA,MACxF,WACG,SAAO,EACP,IAAI,IAAI,EACR,SAAS,EACT,SAAS,sDAAsD;AAAA,MAClE,MAAQ,UAAQ,EAAE,QAAQ,IAAI;AAAA,MAC9B,iBAAmB,SAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,KAAM,EAAE,QAAQ,GAAG;AAAA,IAClE;AAAA,EACF,GACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,QACI;AAAA,IACJ,MAAM,OAAO,MAAM,SAAO,WACxB,iBAAiB,SAAQ,eAAe;AAAA,MACtC;AAAA,SACI,aAAa,YAAY,CAAC,IAAI,EAAE,SAAS;AAAA,SACzC,WAAW,YAAY,CAAC,IAAI,EAAE,OAAO;AAAA,SACrC,YAAY,YAAY,CAAC,IAAI,EAAE,QAAQ;AAAA,SACvC,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU,SAAS,KAAK,SAAS,EAAE;AAAA,SACpE,mBAAmB,YAAY,CAAC,IAAI,EAAE,cAAc,OAAO,KAAK,cAAc,EAAE;AAAA,SAChF,cAAc,YAAY,CAAC,IAAI,EAAE,UAAU;AAAA,IACjD,CAAC,CACH;AAAA,IACA,OAAO,OACL,WACE,OAAO,MAAM,SAAO,WAAW,YAAY,SAAQ,MAAM,eAAe,CAAC,IAAI,IAC/E,CACF;AAAA,GAEJ;AAAA,EAEA,OAAO,aACL,eACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa,EAAE,SAAW,SAAO,EAAE,KAAK,EAAE;AAAA,EAC5C,GACA,SAAS,cACP,OAAO,WAAW,MAAM,SAAO,WAAW,QAAO,QAAQ,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACpF;AAAA,EAEA,OAAO,aACL,cACA;AAAA,IACE,OAAO;AAAA,IACP,aACE;AAAA,IACF,aAAa,EAAE,SAAW,SAAO,EAAE,KAAK,EAAE;AAAA,EAC5C,GACA,SAAS,cAAc,OAAO,MAAM,SAAO,WAAW,QAAO,UAAU,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAC/F;AAAA,EAEA,OAAO,aACL,aACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,MACX,SAAW,SAAO,EAAE,KAAK;AAAA,MACzB,iBAAmB,SAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,KAAM,EAAE,QAAQ,GAAG;AAAA,IAClE;AAAA,EACF,GACA,SAAS,SAAS,sBAAsB;AAAA,IACtC,MAAM,OAAO,MAAM,SAAO,WAAW,QAAO,QAAQ,OAAO,KAAK,OAAO,CAAC,CAAC;AAAA,IACzE,OAAO,OAAO,WAAW,MAAM,SAAO,WAAW,YAAY,SAAQ,MAAM,eAAe,CAAC,CAAC,CAAC;AAAA,GAEjG;AAAA,EAEA,OAAO,aACL,eACA;AAAA,IACE,OAAO;AAAA,IACP,aACE;AAAA,IACF,aAAa,EAAE,SAAW,SAAO,EAAE,KAAK,EAAE;AAAA,EAC5C,GACA,SAAS,cACP,OAAO,WAAW,MAAM,SAAO,WAAW,QAAO,WAAW,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACvF;AAAA,EAEA,OAAO,aACL,kBACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa,EAAE,WAAa,SAAO,EAAE,KAAK,EAAE;AAAA,EAC9C,GACA,SAAS,gBACP,OAAO,MAAM,SAAO,WAAW,cAAc,SAAQ,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CACnF;AAAA,EAEA,MAAM,OAAO,QAAQ,IAAI,oBAAsB;AAAA;;;AdpKjD,IAAM,OAAO,YAA2B;AAAA,EACtC,MAAM,UAAU,QAAQ,KAAK;AAAA,EAC7B,IAAI,YAAY,aAAa,YAAY,UAAU,YAAY,YAAY,YAAY,MAAM;AAAA,IAC3F,UAAU;AAAA,IACV;AAAA,EACF;AAAA,EACA,IAAI,YAAY,eAAe,YAAY,WAAW;AAAA,IACpD,QAAQ,IAAI,OAAO;AAAA,IACnB;AAAA,EACF;AAAA,EACA,MAAM,mBAAmB,QAAQ,KAAK,MAAM,CAAC;AAAA,EAC7C,IACE,iBAAiB,WAAW,KAC5B,CAAC,UAAU,MAAM,MAAM,EAAE,SAAS,iBAAiB,MAAM,EAAE,GAC3D;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EACF;AAAA,EACA,IAAI,CAAC,UAAU,KAAK,EAAE,SAAS,OAAO,KAAK,QAAQ,KAAK,SAAS,GAAG;AAAA,IAClE,MAAM,IAAI,MAAM,GAAG,mCAAmC;AAAA,EACxD;AAAA,EACA,IAAI,YAAY,WAAW,iBAAiB,WAAW,GAAG;AAAA,IACxD,QAAQ,wBAAa;AAAA,IACrB,MAAM,UAAS;AAAA,IACf;AAAA,EACF;AAAA,EACA,IAAI,YAAY,UAAU;AAAA,IACxB,MAAM,gBAAgB,MAAM,SAAO,WAAW,uBAAuB;AAAA,IACrE,MAAM,SAAO,WAAW,UAAU,aAAa,CAAC;AAAA,IAChD;AAAA,EACF;AAAA,EACA,IAAI,YAAY,OAAO;AAAA,IACrB,MAAM,gBAAgB,MAAM,SAAO,WAAW,uBAAuB;AAAA,IACrE,MAAM,OAAO,aAAa;AAAA,IAC1B;AAAA,EACF;AAAA,EACA,MAAM,OAAO,SAAS,gBAAgB;AAAA;AAGxC,MAAM,KAAK,EAAE,MAAM,CAAC,UAAmB;AAAA,EACrC,QAAQ,MACN,KAAK,UAAU,EAAE,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,GAAG,MAAM,CAAC,CAC3F;AAAA,EACA,QAAQ,WAAW;AAAA,CACpB;",
28
- "debugId": "F147BDC9F8E0C7EE64756E2164756E21",
27
+ "mappings": "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",
28
+ "debugId": "78963F23872A4D6564756E2164756E21",
29
29
  "names": []
30
30
  }